我是Rails的新手。我发现下面的两种方法得到了相同的结果,但我不能理解代码。
[ ]应该是数组的运算符,对吗?为什么我可以这样使用它:
代码1:
drummer = Drummer.find(1)
drummer[:name]
=>"Jojo Mayer"代码2:
drummer = Drummer.find(1)
drummer.name
=> "Jojo Mayer"发布于 2010-12-06 11:58:58
实际上,这有一个重要的区别。
如果您需要通过覆盖setter对值进行某种处理:
class Drummer
def name= value
self[:name] = value.capitalize
end
end然后,drummer:name允许您绕过覆盖。
发布于 2010-12-05 09:20:52
这是没有区别的。基础实例方法[]只调用返回相同值的read_attribute。
[]方法的目的是允许使用变量传递属性名称,例如:
key = :name
drummer[key]
=>"Jojo Mayer"https://stackoverflow.com/questions/4356772
复制相似问题