2
我們正在使用設計進行註冊和身份驗證。我們有許多用戶和用戶都擁有一家公司的公司。我們希望在用戶註冊時從他們的電子郵件中提取域名,用它來標識他們的公司,並在創建用戶之前將該新用戶與該公司相關聯。需要在設計註冊的用戶上設置關聯
我們試圖劫持在這個RegistrationController create方法:
def create
super do |user|
company = Registrations::FindcompanyByEmailDomain.call(user.email)
if company
user.company = company
user.save
end
end
end
但這並不理想。它似乎影響創建後的重定向,我寧願這樣做另一種方式。有什麼建議麼?
這是我們試圖重寫設計路徑是用戶創建後:
def after_sign_up_path_for(resource)
go_to_a_path # doesn't work
end
def after_inactive_sign_up_path_for(resource)
go_to_another_path #also doesn't work
end
我們使用 before_create也嘗試:get_company
def get_company
self.company = FindCompanyByDomain(domain)
end
和同樣與before_save
在用戶模型有一些魔術更新user.company
,但當Devise控制器發揮作用時,兩個鉤子都會被忽略(binding.pry
被忽略)。
任何幫助將不勝感激。
謝謝。
你能準確地展示你在回調中做了什麼嗎? – 2015-03-19 04:45:13
是,再次用該代碼更新。 – 2015-03-19 04:51:30
您可以嘗試重寫'save',並檢查用戶是否被「持續?」,或不。如果您不希望每次保存用戶時檢查此項操作,並且您的用戶可以「確認」,那麼可以重寫'confirm!'。這通常用於向新確認的用戶發送歡迎電子郵件。 – 2015-03-19 05:03:10