Многосайтовый сайт Rails/Jruby имеет ActiveRecord::AdapterNotSpecified конфигурация базы данных не определяет проблему адаптера
Попытка изменить веб-приложение на основе раскрывающегося списка. У меня такое ощущение, что я не тяну выпадающий выбор.
Модель:
class MyApp < ActiveRecord::Base
def initialize(dbase)
@dbase = fdbase
if @dbase == 'DB01'
ActiveRecord::Base.establish_connection"#{Rails.env}"
else
ActiveRecord::Base.establish_connection"#{Rails.env}_#{@fc}"
end
end
end
контроллер:
class MyAppController < ApplicationController
before_filter :initialize_remote_user
def self.search(name)
@results = MyApp.search(params[:name])
@dbase = params[:dbase].inspect
c = MyApp.new(@dbase)
result = c.last
end
def result
c = MyApp.new(@dbase)
result = c.last
@results = MyApp.where("name = ?",params[:name]).order("item_scan_date ASC")
puts @results.inspect
end
def update
@results = MyApp.Where(name: name_params)
@dbase = params[:dbase].inspect
end
def change
@results = MyApp.Where(name: name_params)
@dbase = params[:dbase].inspect
end
def show
@dbase = params[:dbase].inspect
c = MyApp.new(@dbase)
result = c.last
end
def create
end
def new
end
def index
@dbase = params[:dbase].inspect
c = MyApp.new(@dbase)
result = c.last
end
private
def name_params
params.require(:name).permit(:name)
end
def dbase_params
params.require(:dbase).permit(:dbase, :id)
end
end
выпадающий список находится на моей навигационной панели и добавлен в _nav.html.erb: ниже находится _dbform.html.erb
<div id="float_right">
<%= form_for @dbase do |f| %>
<%= f.select( :dbase, options_for_select([['DB01','DB01'],['DB02','DB02'],['DB03','DB03'],['DB04','DB04']])) %>
<% end %>
</div>
database.yml, производство и разработка которых совпадают.
# Uses RubyGem-activerecord-jdbcsqlite3-adapter
development:
adapter: mysql2
host: myhost
database: DB01
encoding: utf8
port: 3306
development_DB2:
adapter: mysql2
host: myhost
database: DB02
encoding: utf8
port: 3306
development_DB3:
adapter: mysql2
host: myhost
database: DB03
encoding: utf8
port: 3306
development_DB4:
adapter: mysql2
host: myhost
database: DB04
encoding: utf8
port: 3306
Я не уверен, что я делаю неправильно.
1 ответ
Вместо кода контроллера, вероятно, было бы более полезно увидеть фактическую обратную трассировку ошибки... поскольку из этого можно, вероятно, выяснить версии AR и AR-JDBC, в любом случае, как слепой выстрел, попробуйте это:
if @dbase == 'DB01'
ActiveRecord::Base.establish_connection "#{Rails.env}".to_sym
else
ActiveRecord::Base.establish_connection :"#{Rails.env}_#{@dbase}"
end
... который использует символы + @dbase
кажется, переменная нам нужна