尝试根据下拉菜单更改网络应用程序模式。我有一种感觉,我不是在拉下选择。
型号:
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
我不确定我做错了什么。
答案 0 :(得分:0)
而不是控制器代码,看到错误的实际反向跟踪可能会更有用...因为从那个可以找出AR和AR-JDBC版本,无论如何作为盲目尝试这个:
if @dbase == 'DB01'
ActiveRecord::Base.establish_connection "#{Rails.env}".to_sym
else
ActiveRecord::Base.establish_connection :"#{Rails.env}_#{@dbase}"
end
...使用符号+ @dbase
似乎是我们需要的变量