在试图让它与我对 Rails 的了解相当长一段时间后,我一直在谷歌上搜索大约一个小时的答案,并决定足够了。在我的索引页面上,我想创建一个按钮,其作用类似于默认的“删除”操作,但它会更新一个布尔值。这是我在控制器中的操作:
def update_monitor_state
@server_monitor.paused = not @server_monitor.paused
redirect_to server_monitors_url
end
我会向您展示我的路线,但我不知道如何让它做我想做的事,并且在尝试了每个人的路线后,我拥有基本的“资源:server_monitors”,这些路线可以为他们的基本博客网站添加新的显示页面。我只知道 URI 模式应该是 '/server_monitors/:id(.:format)' 和控制器操作 'server_monitors#update_monitor_state',我想在视图中调用它,比如调用 'delete'。
<% @server_monitors.each do |monitor| %>
<tr>
<td><%= monitor.monitor_name %></td>
<td>
<% if monitor.paused %>
<%= link_to 'Start', monitor, method: :update_monitor_state %>
<% else %>
<%= link_to 'Pause', monitor, method: :update_monitor_state %>
<% end %>
</td>
<td><%= link_to 'Destroy', monitor, method: :delete %></td>
</tr>
<% end %>