Создание новых рельсовых действий не работает? - PullRequest
6 голосов
/ 30 ноября 2010

У меня есть контроллер «Приложения».Он состоит из одного действия «указатель».Теперь я хочу добавить новое действие под названием «покупка»:

def buy
  respond_to do |format|
    format.html
  end
end

Я добавил buy.html.erb к представлениям, но при просмотре / apps / buy я получаю следующее сообщение:

Unknown action - The action 'show' could not be found for AppsController

в маршрутах я добавил это:

  match '/apps/buy', :controller => 'apps', :action => 'buy'

заранее спасибо!

1 Ответ

16 голосов
/ 30 ноября 2010

URL перехватывается стандартным маршрутом /apps/:id, я полагаю, у вас также есть resources :apps в ваших маршрутах?

Просто поместите сначала маршрут покупки:

match '/apps/buy', :controller => 'apps', :action => 'buy'
resources :apps

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

Более простой подход, предложенный @Ryan, заключается в добавлении маршрута к ресурсу:

resources :apps, :collection => { :buy => :get }
...