Настройка маршрутов без отдыха - PullRequest
6 голосов
/ 18 ноября 2010

Я не могу понять, как это сделать в рельсах 3.0.У меня есть контроллер products и действие search, а в routes.rb я пробовал

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

и

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

и многие другие настройкино всякий раз, когда я получаю доступ к products/search, я все равно получаю сообщение об ошибке, сообщающее, что Продукт с идентификатором search не может быть найден для действия show.Кто-нибудь знает, что я делаю не так?

Спасибо.

Ответы [ 2 ]

10 голосов
/ 18 ноября 2010

Ты рядом.

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

Кроме того, вы также можете сделать:

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

Для получения дополнительной информации см. Маршруты с внешней стороны на боковых направляющих:

4 голосов
/ 18 ноября 2010

В Rails 3 collection теперь является блоком:

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

Это позволит вам получить доступ к действию ProductsController#search, используя запрос GET или POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...