Techioz Blog

引数を渡すレールのaround_action?

概要

引数を受け入れる Rails で around_action を呼び出すにはどうすればよいですか?

around_action only: [:follow] do
 set_follow_source(@source)
end

def set_follow_source
  puts 'before'
  yield
  puts 'after'
end

解決策

あなたの質問を明確にしなければなりません。正確に誰またはどのコンポーネントがこの引数を設定すべきでしょうか?

DSL を作成してアクションの周囲に事前に引数を設定したい場合は、次のようなことができます。

def self.say_hello_to(name)
  lambda do |controller, block|
    hello name, &block
  end
end

around_action say_hello_to('smith'), only: :index

def index
end

private

def hello(name, &block)
  puts 'hello'
  yield
  puts name
end