我在Rails 4中使用strong_params。当我尝试使用这样的自定义setter方法时:
def foo=(foo)
@foo = foo
end
然后Rails在数据库中将该属性记录为null。如果我删除自定义setter,那么一切正常。在Rails 3中,自定义setter是这样编写的,但也许事情已经改变了?如果是这样,自定义设置器现在如何工作?
答案 0 :(得分:4)
我不认为此代码适用于Rails 3.你确定这个吗?因为如果这样做,您将覆盖由ActiveRecord创建的setter方法(它负责将数据存储到DB)。您的自定义方法版本看起来是否完全如图所示?它的重点是什么?
尝试拨打super
。
def foo=(foo)
@foo = foo
super
end
P.S。:我检查过它在Rails 3中工作不(适用于super
)。