2016-08-19 21 views

答えて

1

EDITあなたはurlで識別したり、あるドメインを選択して指定する必要があり

例をドメイン別に識別します。文字列、ユーザー:

#domain.rb

Class Domain < ActiveRecord::Base 
    belongs :user 
end 

#1 user.rb

belongs_toのあなたは

http://www.domain1.com

`すくいグラムモデルドメイン名ご使用の環境に適応させる必要があります。しかし、

Class User < ActiveRecord::Base 
... 
    has_many :domains 
end 

あなたのレールコンソール

User.find(1).domains.create(name:'www.domain1.com') 
User.find(1).domains.create(name:'www.domain2.com') 

#のapplication_controller.rbは

helper_method :current_domain 

def current_domain 
    domain = request.host 
    Domain.find_by_name(domain) 
end 

を#EDITEDあなたはセッションコントローラで新しいあなたを修正する必要がある

<%= f.hidden_field :user, :domain_id, value: current_domain.try(:id) 

new.html.slim

#アプリ/ビュー/セッション/あなたの設定/イニシャライザ/ devise.rb

config.authentication_keys = [ :email, :domain_id ] 

#アプリ/モデル/ user.rb

devise authentication_keys: {email:true, login:false, domain_id:true} 

def self.find_first_by_auth_conditions(warden_conditions) 
    conditions = warden_conditions.dup 
    domain_id = conditions.delete(:domain_id) 
    where(conditions).joins(:domains).where('domains.id = :value', {:value => domain_id }).first 
end 
+0

ユーザーがドメイン – stereodenis

+1

'application_controller.rb'代わりに' application.rb' –

+0

はすぐに私は二度のコードを見て、私が思う – stereodenis

関連する問題