Rails 4 before_action,将parameter passing给被调用的方法

我有以下代码:

class SupportsController < ApplicationController before_action :set_support, only: [:show, :edit, :update, :destroy] .... 

是否有可能传递一个string的方法set_support适用于所有4个视图方法? 是否有可能传递一个不同的string的方法set_support为视图中的每个方法?

 before_action only: [:show, :edit, :update, :destroy] do set_support("value") end 

你可以使用lambda:

 class SupportsController < ApplicationController before_action -> { set_support("value") }, only: [:show, :edit, :update, :destroy] ... 

您可以将lambda传递给before_action ,并将params[:action]传递给set_support方法,如下所示:

 class SupportsController < ApplicationController before_action(only: [:show, :edit, :update, :destroy]) ->{|c| c.set_support params[:action]} .... 

简短的回答和单行(我个人比较喜欢callback )是:

 before_action except:[:index, :show] {method :param1, :param2} 

另一个eaxmple

 after_filter only:[:destroy, :kerplode] {method2_namey_name(p1, p2)}