2016-08-19 2 views

답변

1

편집 당신은 URL에 의해 확인하거나 당신이 도메인 선택과 식별해야

.

도메인별로 식별되는 예입니다. 문자열, 사용자 : 그러나 당신은 당신의 환경

http://www.domain1.com

`레이크 g 모델 도메인 이름에 적응해야합니다

#의 domain.rb

Class Domain < ActiveRecord::Base 
    belongs :user 
end 

#의 user.rb belongs_to

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