现在我正在将 rails 3.0.7 升级到 rails 3.1 pre 版本。当我创建一个示例项目时,它工作正常。创建脚手架后,我尝试迁移,但它让我的耙子中止了!消息。
这是我的代码
rails g scaffold product name:string price:decimal category:string
invoke active_record
create db/migrate/20110517090853_create_products.rb
create app/models/product.rb
invoke test_unit
create test/unit/product_test.rb
create test/fixtures/products.yml
route resources :products
invoke scaffold_controller
create app/controllers/products_controller.rb
invoke erb
create app/views/products
create app/views/products/index.html.erb
create app/views/products/edit.html.erb
create app/views/products/show.html.erb
create app/views/products/new.html.erb
create app/views/products/_form.html.erb
invoke test_unit
create test/functional/products_controller_test.rb
invoke helper
create app/helpers/products_helper.rb
invoke test_unit
create test/unit/helpers/products_helper_test.rb
create app/assets/stylesheets/scaffold.css.scss
invoke assets
create app/assets/javascripts/products.js.coffee
create app/assets/stylesheets/products.css.scss
rake db:migrate
== CreateProducts: migrating =================================================
-- create_table(:products)
-> 0.0053s
== CreateProducts: migrated (0.0054s) ========================================
rake aborted!
An error has occurred, all later migrations canceled:
undefined method `rows' for nil:NilClass
(See full trace by running task with --trace)
我正在使用 ruby 1.9.2 和 xampp。
谁能知道问题出在哪里?
我在使用 mysql2 v0.2.6 作为数据库适配器时遇到了同样的问题。
我试图解决将 mysql2 更新到最新版本 0.3.2 的问题,但我无法在 Windows 上编译这个 gem。但我仍然相信最新版本的 mysql2 可能会起作用。目前我使用"pg"gem作为DB的postgres适配器,它可以在Rails 3.1.pre上运行良好
我有用。 我更改了 Gemfile 以使用 github 存储库:
gem 'mysql2', :git => 'git://github.com/brianmario/mysql2.git'
然后运行捆绑安装。 在此之后,我仍然收到有关libmysqlclient.18.dylib丢失的错误,我通过运行修复了该错误(您的路径可能会有所不同):
install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/ruby-1.9.2-p180/bundler/gems/mysql2-a1ddafaf8b31/lib/mysql2/mysql2.bundle
我刚刚在 Windows 7 计算机上遇到了这个问题,并且能够解决它,这要归功于 http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html。 我已经安装了devkit,这就是为我所做的:
gem install mysql2 -- '--with-mysql-lib="c:Program FilesMySQLMySQL Server 5.1libopt" --with-mysql-include="c:Program FilesMySQLMySQL Server 5.1include"'
这安装了MySQL适配器的0.3.7版本,我能够成功运行迁移。