Ruby on rails Can';不要改变自我的价值
尝试在生产环境中运行Rails应用程序时,我从乘客处收到以下错误:Ruby on rails Can';不要改变自我的价值,ruby-on-rails,Ruby On Rails,尝试在生产环境中运行Rails应用程序时,我从乘客处收到以下错误: self = SecureRandom.urlsafe_base64 它来自我的user.rb模型。你知道为什么会这样吗?完整模块如下所示: def generate_token(column) begin self = SecureRandom.urlsafe_base64 end while User.exists?(column => self[column]) end 其目的是在用户请求密码重置
self = SecureRandom.urlsafe_base64
它来自我的user.rb
模型。你知道为什么会这样吗?完整模块如下所示:
def generate_token(column)
begin
self = SecureRandom.urlsafe_base64
end while User.exists?(column => self[column])
end
其目的是在用户请求密码重置时设置安全令牌,密码重置来自以下内容:
def send_password_reset #From 274
generate_token(:password_reset_token)
self.password_reset_sent_at = Time.zone.now
save!
UserMailer.password_reset(self).deliver
end
有什么想法吗?我看不到任何语法错误。在Ruby中,
self
允许您访问当前对象,并且无法设置。在这种情况下,self
指的是User
模型的当前实例。看起来您只是想设置password\u reset\u token列,因此:
def generate_token(column_name)
write_attribute column_name, SecureRandom.urlsafe_base64
end