Удобные вложенные маршруты в рельсах - PullRequest
1 голос
/ 15 февраля 2011

Я новичок в ruby ​​/ rails, и у меня есть отношение own_to между, скажем, группой и пользователем (user assign_to group).

Я хотел бы иметь следующий тип URL:

www.mysite.com / abcd / user / 1 - (ПРИМЕЧАНИЕ "группа" не является частью URL)

где abcd - имя группы, а 1 - идентификатор пользователя. Это легко сделать? Как мне это сделать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Да, это очень легко сделать в Rails 2 и 3.

Предполагая, что вы используете Rails 3, вы сделаете это следующим образом

match ":group/user/:id", :to => "group#user"

Когда вы используетеВ методе match части URL с предыдущим двоеточием станут параметрами, поэтому в вашем контроллере будут доступны params [: group] и params [: id].Параметр: to определяет контроллер и действие, поэтому в этом примере он отправит запрос GroupController и пользовательское действие.: to может фактически указывать на любую конечную точку приложения Rack, «продолжение # action» - это просто сокращение.

Если вы используете ресурсы, вы можете настроить их как обычно, а затем просто определить этостандартный маршрут где-то еще в стеке, и оба будут работать бок о бок.

1 голос
/ 15 февраля 2011

Я не уверен, но попробуйте это:

scope :path => '/:group_name' do
  resources :users
end

Вы должны найти свою группу по params[:group_name], если вы используете этот подход.

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