2010-11-18 3 views
6

これをレール3.0で行う方法はわかりません。私はsearch、コントローラ、products、および作用を有し、かつroutes.rbに私は安心できないルートを設定する

resources :products, :collection => {:search => :post } 

match 'products/search' => 'products#search', :via => [:get, :post] 

や他の多くの設定を試してみたが、私はproducts/searchにアクセスするたびに、私はまだエラーが出ますid:searchの商品は、showのアクションでは見つかりませんでした。誰でも私が間違っていることを知っている?

ありがとうございました。 Railsの3、collection

答えて

10

もうすぐです。

resources :products do 
    collection do 
    match 'search', :via => [:get, :post] 
    end 
end 

はまた、あなたも行うことができます:

resources :products do 
    match 'search', :on => :collection, :via => [:get, :post] 
end 

は、より具体的には、より多くの情報のためのエッジガイドのRails Routing from the Outside Inを参照してください。

を3210
+1

うわー、私は「外からルーティングする」ページのそのセクションを見逃してしまったのか分かりません。驚くばかり。ありがとう、みんな、それは働いた。 – user508546

+0

問題ありません。私たちが助けてくれてうれしいです。 =)答えとして私たちの両方をマークすることはできません。 = D – John

4

は現在ブロックです:

resources :products do 
    collection do 
    get :search 
    post :search 
    end 
end 

これはあなたがどちらかGETまたはPOST要求を使用してProductsController#searchアクションにアクセスできるようになります。

関連する問題