Ruby on rails 配置非restful路由
我不知道如何在rails 3.0中实现这一点。我有一个控制器,Ruby on rails 配置非restful路由,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我不知道如何在rails 3.0中实现这一点。我有一个控制器,products,还有一个动作,search,我在routes.rb中试过 resources :products, :collection => {:search => :post } 及 和许多其他设置,但每当我访问产品/search时,仍然会收到一个错误,抱怨无法找到id为search的产品来执行操作show。有人知道我做错了什么吗 谢谢。在Rails 3中,集合现在是一个块: resources :product
products
,还有一个动作,search
,我在routes.rb中试过
resources :products, :collection => {:search => :post }
及
和许多其他设置,但每当我访问产品/search
时,仍然会收到一个错误,抱怨无法找到id为search
的产品来执行操作show
。有人知道我做错了什么吗
谢谢。在Rails 3中,集合现在是一个块:
resources :products do
collection do
get :search
post :search
end
end
这将允许您使用GET
或POST
请求访问ProductsController#search
操作。您已接近
resources :products do
collection do
match 'search', :via => [:get, :post]
end
end
或者,您也可以执行以下操作:
resources :products do
match 'search', :on => :collection, :via => [:get, :post]
end
有关更多信息,请参见边缘辅助线的详细信息,具体如下:
哇,我不知道我怎么会错过“从外到内路由”页面的那一部分。令人惊叹的。谢谢,伙计们,成功了,没问题。很高兴我们能帮忙很遗憾你不能把我们两个都标为答案=D
resources :products do
match 'search', :on => :collection, :via => [:get, :post]
end