2013-06-19 3 views
1

У меня есть модель foo.Определить конечную точку ресурса с конечными точками участника

В моей config/routes.rb я получил:

resources :foo do 
    member do 
    post 'approve' 
    post 'delete' 
    end 

    get 'another_action' 
end 

Если я сделать JQuery $.get("/foo/another_action") вызов, я получаю следующий результат:

ActiveRecord::RecordNotFound (Couldn't find Foo with id=another_action): 
    app/controllers/foo_controller.rb:20:in `show' 

Я также пробовал делать:

resources :foo do 
    member do 
    post 'approve' 
    post 'delete' 
    end 
end 

resource :foo do 
    get 'another_action' 
end 

Как указать маршрут для /foo/another_action, так что элемент управления er рассматривает его как конечную точку ресурса, а не как id?

ответ

3
resources :foo do 
    get 'another_action', :on => :collection 
end 

будет генерировать следующий маршрут: /foo/another_action, в то время как:

resources :foo do 
    get 'another_action', :on => :member 
end 

сгенерирует:/Foo /: ID/another_action.

Посмотрите руководство: http://guides.rubyonrails.org/routing.html

+0

Спасибо! Я просмотрел путеводитель по маршрутизации, но мне удалось пропустить «коллекцию», и во всех моих поисках Google я не думал использовать это ключевое слово. Я соглашусь с этим ответом, как только я позволю. – asfallows

Смежные вопросы