我有以下代码:
class SupportsController < ApplicationController
before_action :set_support, only: [:show, :edit, :update, :destroy]
....
是否可以将字符串传递set_support
给要应用于所有 4 个视图方法的方法?是否可以将不同的字符串传递给set_support
视图中每个方法的方法?
我有以下代码:
class SupportsController < ApplicationController
before_action :set_support, only: [:show, :edit, :update, :destroy]
....
是否可以将字符串传递set_support
给要应用于所有 4 个视图方法的方法?是否可以将不同的字符串传递给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]
...
一个简短而单行的答案(我个人更喜欢回调)是:
before_action except:[:index, :show] { method :param1, :param2 }
另一个例子:
after_filter only:[:destroy, :kerplode] { method2_namey_name(p1, p2) }
您可以将 lambda传递给before_action
并传递params[:action]
给set_support
方法,如下所示:
class SupportsController < ApplicationController
before_action only: [:show, :edit, :update, :destroy] {|c| c.set_support params[:action]}
....
然后发送的参数是以下字符串之一:'show'
、'edit'
或。'update'
'destroy'
SupportsController
class SupportsController < ApplicationController
before_action only: [:show, :edit, :update, :destroy] { |ctrl|
ctrl.set_support("the_value")
}
...
应用控制器
class ApplicationController < ActionController
def set_support (value = "")
p value
end
...