Многосайтовый сайт 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 кажется, переменная нам нужна

Другие вопросы по тегам