私はbefore_actionsをたくさん持っているコントローラを持つアプリケーションで作業しています。それらのほとんどは、設定したインスタンス変数によって互いに接続されています。たとえば:複数のbefore_actionが不正なコードスタイルを呼び出していますか?
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
があまり良く見えません。読みやすくするためにそれをリファクタリングする方法はありますか?それとも、私は現在のソリューションに固執すべきですか?
複数の 'before_actions'を持つことに何も問題はありませんが、1つのアクションにまとめられるケースがあるようです。 – Matt
あなたのアイデア@Mattありがとうございました。あなたがそれを私の問題の解決策として確認できる答えとして追加した場合:) – zeth
完了、助けてくれることをうれしく思います! – Matt