アプリにSQLiteの代わりにMongoidを使用しようとしています。
したがって、私のコードは次のようになります。
class User
include Mongoid::Document
include Mongoid::Timestamps
field :name, type: String
field :email, type: String
field :encrypted_password, type: String
field :salt , type: String
field :admin , type: Boolean
attr_accessor :password
attr_accessible :name, :email, :password, :password_confirmation
.....
def has_password?(submitted_password)
encrypted_password == encrypt(submitted_password)
end
....
class << self
def authenticate(email_id, submitted_password)
print "authenticate the user " + email_id
user = User.where(email:email_id)
if user.nil?
return false
else
print "\n Check the passsword" + user.has_password?(submitted_password)
end
end
それで、
以前、ActiveRecordを使用していたとき、次の機能でユーザーを認証できました。
def authenticate(email, submitted_password)
- user = find_by_email(email)
- (user && user.has_password?(submitted_password)) ? user : nil
しかし今、認証機能は次のように言って失敗します:
undefined method `has_password?' for #<Array:0xbcc55b4>
Mongoidを使用するための細かい部分が欠けていますか?