1
私は1つのアプリケーションと2つの異なるドメインを持っています。ユーザーモデルを横断します。私はサインイン/アウトのためにDeviseを持っています。各ドメインのセッションを作成するには?1つのレールアプリケーション、2つのドメイン、それぞれ異なるセッション
私は1つのアプリケーションと2つの異なるドメインを持っています。ユーザーモデルを横断します。私はサインイン/アウトのためにDeviseを持っています。各ドメインのセッションを作成するには?1つのレールアプリケーション、2つのドメイン、それぞれ異なるセッション
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
ユーザーがドメイン – stereodenis
'application_controller.rb'代わりに' application.rb' –
はすぐに私は二度のコードを見て、私が思う – stereodenis