0

ユーザーとメンバーの2つのデバイスモデルがあります

そのため、Devise イニシャライザではなく、モデル自体で認証キーを指定しています。

メンバー.rb

devise :database_authenticatable, :registerable,
    :recoverable, :rememberable, :trackable, :validatable, :omniauthable, :authentication_keys => [:email, :subdomain]

私もオーバーライド

  def self.find_for_authentication(conditions={})
    debugger
    conditions[:account_id] = Account.find_by_subdomain(conditions.delete(:subdomain)).id
    super(conditions)
  end

残念ながら、authentication_keys に複数のキーがある場合、私の find_for_authentication メソッドは起動していないようです。キーを 1 つだけ指定すると正常に動作します。何かご意見は?

4

1 に答える 1

1

サブドメインはリクエストの一部であるため、request_key である必要があります。

request_keys => [:subdomain]
于 2012-07-02T07:32:39.107 に答える