未定义的方法`访客'的Rails 3分贝:迁移

在Rails 3中进行数据库迁移时,我遇到了异常。

undefined method `visitor' for #<ActiveRecord::ConnectionAdapters::Mysql2Adapter:0x00000103dea3d8>

编辑

请在这里查看解决方案。


我的项目中没有出现字符串visitor所以我感到困惑。

这是完整的转储:

$ rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
rake aborted!
undefined method `visitor' for #<ActiveRecord::ConnectionAdapters::Mysql2Adapter:0x00000103dea3d8>
.rvm/gems/ruby-1.9.2-p180/gems/arel-2.1.5/lib/arel/tree_manager.rb:19:in `visitor'
.rvm/gems/ruby-1.9.2-p180/gems/arel-2.1.5/lib/arel/tree_manager.rb:23:in `to_sql'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:562:in `get_all_versions'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:708:in `migrated'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:635:in `current_version'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:652:in `block in migrate'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:652:in `each'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:652:in `detect'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:652:in `migrate'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:545:in `up'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/migration.rb:526:in `migrate'
.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc5/lib/active_record/railties/databases.rake:161:in `block (2 levels) in <top (required)>'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:90:in `each'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/bin/rake:32:in `<top (required)>'
.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `load'
.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `<main>'
Tasks: TOP => db:migrate

看起来像Arel 2.1.5的问题; 将gem "arel", "2.1.4"到相关的Gemfile将解决问题。

资源

链接地址: http://www.djcxy.com/p/8797.html

上一篇: undefined method `visitor' for Rails 3 db:migrate

下一篇: Why does jquery $.ajax remove line breaks in data and $.get doesn't?