Ruby on rails Authlogic:can';t从类内设置密码属性

Ruby on rails Authlogic:can';t从类内设置密码属性,ruby-on-rails,ruby,passwords,authlogic,Ruby On Rails,Ruby,Passwords,Authlogic,我有一个用户模型,作为密码管理的真实用户。AuthLogic在db支持的“crypted\u password”属性之上添加了“password”和“password\u confirmation”属性。这是相当标准的AuthLogic内容 我希望有一种方法,可以同时设置密码和密码确认(对于我不担心拼写错误的内部应用程序很有用)。为此,我在User中创建了一个新方法: #user.rb def password_and_confirm=(value) password = value p

我有一个用户模型,作为密码管理的真实用户。AuthLogic在db支持的“crypted\u password”属性之上添加了“password”和“password\u confirmation”属性。这是相当标准的AuthLogic内容

我希望有一种方法,可以同时设置密码和密码确认(对于我不担心拼写错误的内部应用程序很有用)。为此,我在User中创建了一个新方法:

#user.rb
def password_and_confirm=(value)
  password = value
  password_confirmation = value
end
但是,调用此方法似乎并没有实际设置密码:

user = User.new
user.password = "test"
user.password               # => "test"
user.crypted_password       # => a big base64 string, as expected

user = User.new
user.password_and_confirm = "test"
user.password               # => nil
user.crypted_password       # => nil
我还尝试了不同的路线:

def internal_password(value)
  password = value
end
…也有同样的问题

为什么不能在用户类中的方法中设置密码属性?

最好尝试以下方法:

#user.rb
def password_and_confirm=(value)
  self.password = value
  self.password_confirmation = value
end
否则ruby会尝试将方法(因为它是这样实现的)视为局部变量(这在赋值操作中具有优先权)