Ограничение маршрутов ресурсов и добавление дополнительных маршрутов без RESTful в Rails 3 - PullRequest
9 голосов
/ 19 июня 2011

Я не смог найти здесь или в другом месте ничего, что касалось бы ограничения маршрутов ресурса и добавления дополнительных маршрутов без RESTful в Rails 3. Возможно, это очень просто, но каждый пример или объяснение, с которым я сталкивался, обращаются только к одному случаюне оба одновременно.

Вот пример того, что я делал в Rails 2:

map.resources :sessions, :only => [:new, :create, :destroy], :member => {:recovery => :get}

Довольно просто, нам нужно только 3 из7 RESTful маршрутов, потому что другие не имеют никакого смысла для этого ресурса, но мы также хотим добавить другой маршрут, который используется при восстановлении учетной записи.

Теперь из того, что я собираюсь сделать, любая из этих вещейочень просто:

resources :sessions, :only => [:new, :create, :destroy]

Так же, как в Rails 2. И:

resources :sessions do
  member do
    get :recovery
  end
end

Итак, как мне объединить эти два?Могу ли я по-прежнему использовать старый способ Rails 2?Есть ли предпочтительный способ сделать это в Rails 3?

Ответы [ 2 ]

17 голосов
/ 19 июня 2011

Вы можете передать аргументы и блок на resources:

resources :sessions, :only => [:new, :create, :destroy] do
  get :recovery, :on => :member
end

И проверьте это с rake routes.

5 голосов
/ 19 июня 2011

Это должно работать примерно так

resources :sessions, :only => [:new, :create, :destroy] do
  member do
    get :recovery
  end
end

Существует еще более короткий путь, предложенный coreyward.

Проверьте направляющие рельсов " Рельсы МаршрутСнаружи В".Я также могу порекомендовать "The Rails 3 Way" Оби Фернандеса, который получил 2 довольно хороших главы о маршрутизации и REST.

Cheers

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