比如在 application_controller 下有page_metadata
方法,代码如下:
def page_metadata
method = "#{action_name}_metadata".to_sym
send(method) if respond_to?(method, true)
end
helper_method :page_metadata
这时可以在页面直接把page_metadata
当成变量使用。
但每次用都会 run 一次这个方法。
例如这样:
def page_metadata
@metadata ||= lambda {
method = "#{params[:action]}_metadata".to_sym
send(method) if respond_to?(method, true)
}.call
end
helper_method :page_metadata
但看起来好像有点奇怪。比较好的做法是什么?