: любой вариант для рельсов 3 маршрута - PullRequest
11 голосов
/ 08 июня 2010

В рельсах 2 вы можете использовать опцию: any для определения пользовательского маршрута, который отвечает на любой метод запроса, например,

map.resources :items, :member => {:erase => :any}

рельсы 3, кажется, не поддерживают: любую опцию

resources :items do
  get :erase, :on => :member # works
  any :erase, :on => :member # doesn't work
end

Кто-нибудь знает, была ли эта опция удалена или просто переименована?

Ответы [ 3 ]

12 голосов
/ 25 июня 2010

Из-за того, что копались и видели, что на самом деле делают действия get, post, put и delete в ActionDispatch, я думаю все, что вам нужно сделать, это match.Итак:

resources :items do
  get :erase, :on => :member
  match :erase, :on => :member
end

Я не думаю, что синтаксис для соответствия на самом деле задокументирован, но маршруты, которые он создает, по крайней мере для меня, того, что вы ожидаете от all метода

0 голосов
/ 08 июля 2010

Соответствие будет работать, но, к сожалению, не в определении ресурса. Я бы предпочел, чтобы они вернули способ определить get / post хотя бы вместе ...

0 голосов
/ 08 июня 2010

Хороший вопрос.

Глядя на Руководство по маршрутизации Edge Rails и Rails 3 source , похоже, что оно не поддерживается.Вы можете поднять билет в Rails Lighthouse (я не мог найти существующий для этого).

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