Можно ли добавить больше маршрутов, когда я уже делал ресурсы: posts - PullRequest
1 голос
/ 27 февраля 2011

В моих маршрутах у меня есть:

resources :posts

Теперь скажите, что я хочу создать новое действие / представление, возможно ли добавить его внутри блока, например:

resources :posts do
  // new routes other than the show/new/create/delete/update that REST gives me.
end

Ответы [ 4 ]

3 голосов
/ 27 февраля 2011

Да

resources :post do
  get :action, :on => :member
  get 'other', :on => :collection
  post :change, :on => :member
  resources :another_model
end

примечание: это всего лишь примеры того, что вы можете сделать, и это предполагает использование Rails 3. Для получения дополнительной информации вы должны прочитать Ruby в Руководство по Rails: маршрутизация по внешней стороне

0 голосов
/ 27 февраля 2011

Вы можете сделать это для ресурса member

resources :posts do
  get :preview, :on => member
end

или для ресурса collection

resources :posts do
  get :active, :on => collection
end

Когда я былначав с рельсов, я был озадачен тем, что были члены и коллекции .Для ресурса Post участник - это отдельное сообщение, а коллекция - это коллекция всех сообщений.Например ...

# url for a member
/posts/5/preview

# url for a collection
/posts/active

В руководстве по рельсам более подробно рассматривается маршрутизация

0 голосов
/ 27 февраля 2011

Вы смотрели на Руководство по рельсам: Маршрутизация с внешней стороны ?Раздел 2.9 Добавление дополнительных действий RESTful описывает именно то, что вы ищете.Я также часто ссылаюсь на другие руководства.

0 голосов
/ 27 февраля 2011

Да, просто добавьте их. Например, если вы хотите иметь возможность публиковать в "new_action", вы должны сделать

resources :posts do
  post "new_action"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...