我的表单中有一个额外的属性(:pagesize),它不在数据库中。 还有一个安装者:
def pagesize= pagesize
self.preferences["pagesize"] = pagesize
end
我想要'update_attributes'方法来调用该setter。 什么是最好的类型:pagesize属性? attr_accessor,attr_writer ...
答案 0 :(得分:1)
如果您的模型中未定义该属性,您只需定义setter,然后执行您想要的任何逻辑:
class YourModel < ActiveRecord::Base
attr_writer :pagesize
def pagesize=(val)
self.size_of_page = val
end
end
像这样的事情。我写了AR版本,因为我假设你正在使用它,但DataMapper或mongoid的原理是相同的。
答案 1 :(得分:1)
你可以在attr_accessor变量上调用update_attributes,但需要将其定义为access。此外,如果你将变量定义为attr_writer,你不需要定义一个setter方法,因为它在后端添加了。结帐Why use Ruby's attr_accessor, attr_reader and attr_writer?了解更多信息