好的,我這樣做。
在devise.rb編輯config.authentication_keys作爲
config.authentication_keys = [ :login, :account_id ]
而且我創建隱藏字段包含在登錄表單ACCOUNT_ID
<%= f.hidden_field :account_id, :value => @account.id %>
這裏@account保持與當前的子域的帳戶。
而且在user.rb增加了以下受保護的方法覆蓋find_for_database_authentication類方法
protected
def self.find_for_database_authentication(warden_conditions)
conditions = warden_conditions.dup
login = conditions.delete(:login)
account_id = conditions.delete(:account_id)
where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).where("account_id = ?", account_id).first
end
如果有則更好的解決方案隨意評論傢伙..
乾杯!
存儲在用戶表中的子域名在哪裏? – Dogbert 2011-06-12 15:48:54
我有存儲子域名的帳戶模型。賬戶與用戶模型有着許多關係。我在用戶模型中嘗試了上面提到的validates_uniqueness_of,但徒勞無功.. :( – kxhitiz 2011-06-12 16:24:00
請問您可以在模型(Account,User)中添加它們之間的關係(has_many,belongs_to)和它們存儲的相關屬性的基本要點嗎? – Dogbert 2011-06-12 17:19:38