У нас есть модель под названием «Авторизация», которая является таблицей соединений для пользователя и роли. Когда вы смотрите с точки зрения пользователя (POV), авторизация называется одобрением. Когда смотришь с Ролевой POV, он называется Держателем. Они реализуются с использованием вложенных ресурсов:Rails-4.2 Share view with muliple контроллеры
resources(:users) do
resources( :roles,
:as => 'endorsements',
:controller => 'endorsements')
end
resources(:roles) do
resources(:users,
:as => 'holders',
:controller => 'holders')
end
Нам необходимо поддерживать авторизацию напрямую. Но мы также должны поддерживать их для конкретных пользователей или ролей. Мы создали три контроллера с именем, authorisations_controller.rb, endorsements_controller.rb и holder_controller.rb. Мы хотели бы, чтобы все три использовали одни и те же представления/авторизации/новые | править | показывать | страницы индекса, так как другие, кроме фильтра пользователя или роли, идентичны по своей природе.
Однако, когда мы вводим шаблон views/authorizations/new.html.erb из endorsements_controller.rb, кнопка отправки заставляет управление программой возвращаться к authorisations_controller, а не к вызывающему endorsements_controller. Есть ли идиома Rails-4, позволяющая просматривать представления между контроллерами и возвращаться к вызывающему экземпляру?
Вы можете передать 'ret' параметров в URL, чтобы использовать, чтобы вернуться. Другие параметры устанавливают его в сеансе. Вы также можете проверить тип пользователя, которого вы проверяете и перенаправляете на основании этого – CWitty