Проверьте текущий родительский контроллер вложенного ресурса - PullRequest
2 голосов
/ 05 марта 2012

У меня есть вложенный ресурс в пользователях:

resources :users do
  resources :reservations
end

В действиях моего контроллера я могу получить текущее имя контроллера с помощью controller.controller_name.Таким образом, в пользовательском действии show контроллер.controller_name возвращает «users».Аналогично, в действии show reservations он возвращает «reservations».

Но когда я являюсь маршрутом вложенных ресурсов, например «http://mywesite/users/:id/mutations", я бы хотел получить родительский контроллер вложенного ресурса, в данном случае»пользователи ". Есть ли способ получить это, используя свойство контроллера или средство проверки маршрута? Я не фанат регулярного выражения моего URL.

Я мог бы проверить свои параметры [: user_id], но это может быть ошибкойВозможно, у меня есть контроллер регистрации, в котором можно установить: user_id.

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

1 Ответ

3 голосов
/ 05 марта 2012

В вашем примере http://mywesite/users/:id/mutations будет http://mywesite/users/:user_id/mutations

Вы можете проверить параметры [: user_id] .present?

См. Получение родительского ресурса с URL

...