2011-01-30 3 views
0

Мой routes.rb:Ruby on Rails3: как мне включить нестандартные методы в маршруты?

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

в моем BoardController У меня есть метод, называемый 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 

пс: из предмета .. лучшая практика говорит, что лучше выключить маршруты джокера, чтобы предотвратить неожиданное поведение:

#match ':controller(/:action(/:id(.:format)))' 
Смежные вопросы