gpt4 book ai didi

ruby-on-rails - 为什么这样的代码有效?

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:30 25 4
gpt4 key购买 nike

class User < ActiveRecord::Base
...
def generate_token(column)
begin
self[column] = SecureRandom.urlsafe_base64
end while User.exists?(column => self[column])
end
...
end

为什么第 3 行 self[column] 中的代码有效?由于 selfUser 类的一个实例,它不应该是 self.column 而不是 column 吗?我还以为 var[index] 是数组处理的方式,对不对?

最佳答案

self[column] 只是 self.[](column) 的另一种写法。其中 [] 是方法名称,column 是参数。 ActiveRecord::Base 实现了 [],因此您可以像在 Array 中一样访问列。

示例:

class Example
def [](arg)
return "foo"
end
end

x = Example.new
x[1] # => "foo"
x[3] # => "foo"
x["bar"] # => "foo"

关于ruby-on-rails - 为什么这样的代码有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16753810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com