3

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

def foo=(foo)
  @foo = foo
end

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

4

1 回答 1

4

我认为这段代码在 Rails 3 上不起作用。你确定吗?因为如果你这样做,你会覆盖由 ActiveRecord(负责将数据存储到 DB)创建的 setter 方法。您的自定义版本的方法看起来与显示的完全一样吗?它有什么意义?

尝试调用super.

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

PS:我检查了它在 Rails 3 中不起作用(与 一起使用super

于 2013-05-22T20:18:30.793 回答