我有一个模型,我想从传递的散列中将默认值赋给它。
def assign_defaults(attr={})
self.attributes.keys.each do |x|
send("#{x} ||=", attr[x])
end
end但是它引发了一个例外:undefined method 'id ||=' for #<Model..>
我也试过send("#{x}.||=", attr[x]),doens也不能工作
发布于 2017-05-06 05:52:59
在Ruby中,||=是关键字,而不是方法。因此,您不能将其发送到对象。
在Rails中,您可以使用括号符号访问模型属性,这样您就可以编写代码:
def assign_defaults(attr = {})
self.attributes.keys.each do |x|
self[x] ||= attr[x]
end
endhttps://stackoverflow.com/questions/43813506
复制相似问题