【发布时间】:2011-05-08 19:33:58
【问题描述】:
rails g migration CreateStates
然后将以下代码添加到迁移中:
============================
class CreateStates < ActiveRecord::Migration
def self.up
create_table :states do |t|
t.column :name, :string
t.column :abbreviation, :string
end
State.create :name => 'Alabama', :abbreviation => 'AL'
State.create :name => 'Alaska', :abbreviation => 'AK'
State.create :name => 'Arizona', :abbreviation => 'AZ'
end
def self.down
drop_table :states
end
end
=============================
我得到一个错误:
** 调用 db:migrate (first_time)
** 调用环境 (first_time)
** 执行环境
** 执行 db:migrate
== CreateStates:迁移 ============================================== ======
-- create_table(:states)
-> 0.0010s
耙子中止了!
发生错误,此迁移和所有后续迁移均已取消:
未初始化的常量 CreateStates::State
/Users/jondoe/.rvm/rubies/ruby-1.8.7-p330/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/backward_compatibility.rb:20:in` const_missing'
========
好像这个应该可以做到这一点:
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
我还尝试创建一个模型,而不仅仅是一个迁移文件。还是一样的错误。我也尝试过创建 2 个迁移(一个用于创建表,一个用于添加数据),但这也不起作用。有什么想法吗?
【问题讨论】:
-
可能没有模型状态。此外,建议将数据库填充代码放入 db/seeds.rb 文件中。
-
谢谢芋头。模型命名不一致
标签: ruby-on-rails-3 rails-migrations