Я работаю над приложением с контроллером, у которого есть много before_actions. Большинство из них связаны друг с другом переменными экземпляра, которые они задают. Например:
def first_action
@first_variable = Something.new
end
def second_action
if @first_variable
@second_variable = Other.new
end
end
Контроллер выглядит следующим образом:
class ExampleController < ApplicationController
before_action :first_action, only: [:index, :show, :create]
before_action :second_action, only: [:index, :show, :create]
before_action :third_action, only: [:index, :show, :create]
before_action :fourth_action, only: [:index, :show, :create]
before_action :fifth_action, only: [:index, :show, :create]
before_action :sixth_action, only: [:index, :show, :create]
before_action :seventh_action, only: [:index, :show, :create]
def index
# some code
end
def show
# some code
end
def create
# some code
end
private
# all of the before_action methods
end
Мне очень трудно понять с моей точки зрения. Каждый из этих методов имеет много кода. Кроме того, есть контроллеры, которые наследуют от этого, а также используют часть или все эти действия.
Я слышал, что лучше быть явным в отношении загруженных переменных в каждом методе, но это:
class ExampleController < ApplicationController
def index
first_action
second_action
third_action
fourth_action
fifth_action
sixth_action
seventh_action
# some code
end
def show
first_action
second_action
third_action
fourth_action
fifth_action
sixth_action
seventh_action
# some code
end
def create
first_action
second_action
third_action
fourth_action
fifth_action
sixth_action
seventh_action
# some code
end
private
# all of the before_action methods
end
выглядит не намного лучше. Есть ли способ реорганизовать его для большей удобочитаемости или я должен придерживаться текущего решения?