2011-01-30 12 views
0

マイroutes.rbを:私のBoardControllerでRuby on Rails3:ルートに非標準メソッドを含めるにはどうすればよいですか?

resources :board 
root :to => 'application#index' 
match ':controller(/:action(/:id(.:format)))' 

私はtake_turn

と呼ばれる方法がありますが、私は#のtake_turnに搭乗を指すリンクをクリックしたとき、私はエラーを取得:

Unknown action 

The action 'show' could not be found for BoardController 

リンクは次のようになります。

http://localhost:3000/board/take_turn?x=0&y=0 

答えて

1
resources :boards do 
    match 'take_turn', :on => :collection 
end 

パス:take_turn_boards_path

0

私はあなたのケースでtake_turnコレクションのGETメソッドであることを前提としています。

resources :board do 
    collection do 
    get :take_turn 
    end 
    # OR 
    get :take_turn, :on => :collection 
end 

PS:対象外に...ベストプラクティスは、予期しない動作を防ぐために、ワイルドカードのルートをオフにする方が良いと言っている:デフォルトで

#match ':controller(/:action(/:id(.:format)))' 
関連する問題