我想知道当你使用带有'with_options'方法的:if选项时,是否可以将参数传递给方法。
例如,我可以这样打电话吗?
with_options :if => :is_user_this_level?(threshold_level) do |some_object| some_object.validates_with ObjectValidator end
我想知道是否可以将变量'threshold_level'传递给:if选项方法。基本上我想这样做是因为我不想要这样的方法:is_user_level_two?,:is_user_level_three?等等等等。
此外,如果有一种RAILS方式,我正在咆哮错误的树,请告诉我。
谢谢!
答案 0 :(得分:2)
ActiveRecord回调的通常:if
选项可以将lambda作为其参数,因此可能会有效:
with_options :if => ->(o) { o.is_user_this_level? threshold_level } do |some_object|
some_object.validates_with ObjectValidator
end