在我的Rails 3.0应用程序中,我的资源上有一系列非常大的搜索表单:索引页面,需要使用POST而不是GET。
目前,应用程序将POST请求路由到资源#create,当我希望它路由到资源#index时。我意识到这是RESTful路由,但需要覆盖它。我怎么能这样做,同时还保留了创建该资源的新记录的能力?
非常感谢。
答案 0 :(得分:3)
你最好只使用post-only的“搜索”操作 - 然后渲染索引模板,例如:
class MyController < ...
def search
@my_things = MyThing.find_with_search_params(params[:search])
render :action => :index
end
end
答案 1 :(得分:3)
您可以使用索引,只需在Rails 3路由中添加:
resources :my_things do
post :index
end
答案 2 :(得分:0)
所以你希望控制器中的“创建”动作端点做两件事 - 回应搜索并进行创建吗?不好的想法,但解决方案可能就像在create action中使用“if”条件来做一个或另一个一样简单。如果它不是一个令人满意的答案,请随意澄清你的问题。