コントローラーでレストフルでないアクションのルートを作成するのに問題があります。コードは次のとおりです。
コントローラ:
class StoresController < ApplicationController
def toggle_store
@store=Store.find(params[:store])
if @store.available==true
@store.update_attribute(:available, false)
else
@store.update_attribute(:available, true)
end
redirect_to @store
end
end
ルート:
resources :groups do
resources :stores do
member do
post :toggle_store
end
end
end
しかし、リンクでパスを使用すると、次のURLが表示されます:http ://example.com/groups/1/stores/toggle_store.2
そして私はこのようなものが必要です: http ://example.com/groups/1/stores/2/toggle_store
何か案は?
ありがとう
編集:
レーキルート:
toggle_store_group_store POST /groups/:group_id/stores/:id/toggle_store(.:format) stores#toggle_store
リンク:
<%=link_to "toggle", toggle_store_group_stores_path(@group,store), :method => :post %>