2
のぞき、この単純化された認証システム:クラスメソッド埋め込まれた文書
class User
include Mongoid::Document
embeds_one :auth
field :username, type: String
end
class Auth
include Mongoid::Document
embedded_in :user, inverse_of: :auth
field :password
def self.login(user, pass)
User.first(conditions: { username: user, password: pass })
end
end
なぜ?私はAuthの "モデル"を定義するファイルにすべての認証固有のものを保持したいからです。
問題がありますか?これは、埋め込まれた文書のクラスのメソッドを呼び出すことはできません。
> Auth.login('user', 'pass')
Mongoid::Errors::InvalidCollection: Access to the collection for Auth is not allowed since it is an embedded document, please access a collection from the root document.
> User.auth.login('user', 'pass')
NoMethodError: undefined method `auth' for User:Class
ので、埋め込まれた文書モデルにおけるクラスメソッドではなく、良いアイデア?