0
我使用mysql2作爲數據庫和用於用戶身份驗證的設計。如何使用默認數據庫進行用戶登錄,但在登錄後使用另一個帶有導軌的數據庫
before_action :authenticate_partner!
我在application_controller.rb中有這行代碼,就像設計好的gem建議的那樣。
我總共有6個表格。
其中2個是在我的默認數據庫中,其中一個是由devise創建的合作伙伴表。
我想要的是這個;什麼時候user_signed_in?返回true我想根據用戶名建立一個新的連接。
我得到了多個控制器,我不想爲它們中的每一個創建一個establish_connection方法。
那麼如何讓我的用戶安全並使用不同的數據庫?
class ApplicationController < ActionController::Base
before_action :authenticate_partner!
protect_from_forgery with: :exception
def find_user_name
if partner_signed_in?
ActiveRecord::Base.establish_connection(
:adapter => "mysql2",
:database => "db_#{current_partner.name} "
)
else
logger.info "log in not succesful"
end
end
end
顯然這個代碼給我錯誤,當我DEF find_user_name,但我似乎移除不能在任一拿到if語句(與logger.info選中)
那麼,應該怎麼辦?
我想你正在嘗試構建一個多租戶應用程序。對於一個新手來說,這是相當複雜的事情;) – 2014-09-01 16:28:54
好吧,我們都是新手在做些什麼:)我學會了什麼時候把自己逼到了極限。這可能是一種壞方法,但是我以這種方式學習了最好的方法。感謝擡起頭來 – railsnewbie 2014-09-01 16:41:53
這看起來相關http://stackoverflow.com/questions/1298909/multiple-database-connection-in-rails – 2014-09-01 16:43:14