我在控制器中为非restfull操作创建路径时遇到了一些问题,这是我的代码:
控制器:
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
但是当我在链接中使用路径时,我会得到此网址:http://example.com/groups/1/stores/toggle_store.2
我需要这样的东西: http://example.com/groups/1/stores/2/toggle_store
任何想法?
由于
编辑:
rake routes:
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 %>
答案 0 :(得分:0)
好吧我修好了这个:
routes.rb中:
resources :groups do
resources :stores do
post :toggle_store
end
end
控制器:
def toggle_store
authorize! :toggle, :store
@store=Store.find(params[:store_id])
if @store.available==true
@store.update_attribute(:available, false)
else
@store.update_attribute(:available, true)
end
redirect_to @group
end
链接:
<%=link_to "to", toggle_store_group_store_path(@group,store), :method => :post %>