Ruby on rails Authlogic:can';t从类内设置密码属性
我有一个用户模型,作为密码管理的真实用户。AuthLogic在db支持的“crypted\u password”属性之上添加了“password”和“password\u confirmation”属性。这是相当标准的AuthLogic内容 我希望有一种方法,可以同时设置密码和密码确认(对于我不担心拼写错误的内部应用程序很有用)。为此,我在User中创建了一个新方法: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
#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会尝试将方法(因为它是这样实现的)视为局部变量(这在赋值操作中具有优先权)