i m с использованием mysql2 в качестве базы данных и разработки для аутентификации пользователей.как использовать базу данных по умолчанию для входа пользователя, но после входа в систему использовать другую базу данных с рельсами
before_action :authenticate_partner!
У меня есть эта строка в приложении application_controller.rb, поскольку рекомендуется использовать драгоценный камень.
У меня всего 6 таблиц.
2 из них находятся в моей базе данных по умолчанию, а одна из них - таблица партнеров, созданная при разработке.
Что я хочу, так это; когда user_signed_in? возвращает true. Я хочу установить новое соединение на основе имени пользователя.
У меня есть несколько контроллеров, и я не хотел создавать метод установления соединения для каждого из них.
Итак, как я могу сохранить свой пользователь в безопасности и использовать разные базы данных?
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
Этот код, очевидно, дает мне ошибку, когда я удалить Защиту find_user_name, но я не могу показаться, чтобы получить в любом из если заявления (проверяются с logger.info)
Так что я должен делать?
Я думаю, вы пытаетесь создать приложение для нескольких арендаторов. Это довольно сложная задача для новичков;) –
хорошо, но мы все новичок в чем-то :) Я узнаю, когда я подталкиваю себя к пределу. Это может быть плохой подход, но я изучаю лучшее таким образом. Спасибо за heads up tho – railsnewbie
Это выглядит актуальным http://stackoverflow.com/questions/1298909/multiple-database-connection-in-rails –