在railscast#274中,Ryan在User模型中具有以下代码:
def generate_token(column)
begin
self[column] = SecureRandom.urlsafe_base64
end while User.exists?(column => self[column])
end
Run Code Online (Sandbox Code Playgroud)
自我[专栏]指的是什么?
它指的是方法[] = at ActiveRecordobjects.调用的别名:
write_attribute(column, SecureRandom.urlsafe_base64)
Run Code Online (Sandbox Code Playgroud)
在你的例子.
它和做的几乎一样self.attribute_name = "some-value".不同之处在于,如果您执行以下操作:
user["unknown_attribute"] = "some value"
Run Code Online (Sandbox Code Playgroud)
你会得到一段ActiveModel::MissingAttributeError: can't write unknown attribute unknown_attribute时间:
user.unknown_attribute = "some value"
Run Code Online (Sandbox Code Playgroud)
会造成一个 NoMethodError: undefined method unknown_attribute= for #<User:0x7185e611>
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |