Rails:strong_params和getter / setter方法

时间:2013-05-22 20:15:55

标签: ruby-on-rails getter-setter strong-parameters

我在Rails 4中使用strong_params。当我尝试使用这样的自定义setter方法时:

def foo=(foo)
  @foo = foo
end

然后Rails在数据库中将该属性记录为null。如果我删除自定义setter,那么一切正常。在Rails 3中,自定义setter是这样编写的,但也许事情已经改变了?如果是这样,自定义设置器现在如何工作?

1 个答案:

答案 0 :(得分:4)

我不认为此代码适用于Rails 3.你确定这个吗?因为如果这样做,您将覆盖由ActiveRecord创建的setter方法(它负责将数据存储到DB)。您的自定义方法版本看起来是否完全如图所示?它的重点是什么?

尝试拨打super

def foo=(foo)
  @foo = foo
  super
end

P.S。:我检查过它在Rails 3中工作(适用于super)。