1
以下は私の懸念事項であるコントローラのConcerns::V1::PlanFinding
です。これが正常に実行さrailsコントローラにアクションのみを含む懸念モジュールを含める方法
class Dist::PlansController
include ::Concerns::V1::PlanFinding
:base
コントローラとアクションに応じて、それは以下のset_plan
extend ActiveSupport::Concern
attr_accessor :plan, :custom_key
included do |base|
actions = case base.to_s
when "Api::V1::PlansController"
[:show, :total_prices, :update]
when "Dist::PlansController"
[:show, :total_prices, :flight_info]
end
if actions.present?
before_action :set_plan, only: actions
else
before_action :set_plan
end
end
def set_plan
@plan = Model.find('xxx')
@custom_key = params[:custom_key] || SecureRandom.hex(10)
end
を呼び出すことは、私からの懸念を呼ぶ一方のコントローラです。問題コードはコントローラbase
であまりにも多く貼り付けられています。
私の質問はコントローラの下にあるonly
オプションを使用できないためです。含めるための私自身のonly
オプションを実装するために、または懸念からbase
コントローラを分離するための新しい方法を見つける方法:
include Concerns::V1::PlanFinding, only: [:show]