かなり長い間レールについて知っていることで動作させようとした後、これに対する答えを約1時間グーグルで調べて、十分であると判断しました。インデックス ページで、デフォルトの「削除」アクションのように機能するボタンを作成したいのですが、代わりにブール値を更新します。これは私のコントローラーでの私のアクションです:
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 %>