Простой способ установить это состоит в том, чтобы иметь метод, назначающий переменные экземпляра в родительском классе (для простоты я буду использовать ApplicationController
здесь), а затем вызвать before_action
в соответствующемконтроллеры.
application_controller.rb
def initialize_objects
@user = User.find(params[:user_id])
@club = Club.find(params[:club_id])
@golf_course = GolfCourse.find(params[:golf_course_id])
end
golf_courses_users_controller.rb
before_action :initialize_objects
course_holes_controller.rb
before_action :initialize_objects
В зависимости от того, насколько широко будет использоваться это действие до действия, вы даже можете переместить before_action
к тому же родительскому контроллеру и пропустить это там, где это не нужно:
application_controller.rb
before_action :initialize_objects
a_controller_not_using_the_before_action.rb
skip_before_action :initialize_objects
Это кажется мне сухим, чистым и довольно привычным - пустьЯ знаю, что вы думаете, и если у вас есть какие-либо вопросы.