fea*_*end 51 rake ruby-on-rails rails-migrations
我创建了一个模型ruby脚本/生成模型文章(简单enuff)
这是迁移文件create_articles.rb:
def self.up
create_table :articles do |t|
t.column :user_id, :integer
t.column :title, :string
t.column :synopsis, :text, :limit => 1000
t.column :body, :text, :limit => 20000
t.column :published, :boolean, :default => false
t.column :created_at, :datetime
t.column :updated_at, :datetime
t.column :published_at, :datetime
t.column :category_id, :integer
end
def self.down
drop_table :articles
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行rake:db migrate命令时,我收到一个错误rake中止!"未初始化的常量CreateArticles."
有谁知道为什么这个错误不断发生?
the*_*com 106
确保你的文件名和类名说的相同(除了类名是驼峰).迁移文件的内容应该类似于这样,简化它们:
#20090106022023_create_articles.rb
class CreateArticles < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.belongs_to :user, :category
t.string :title
t.text :synopsis, :limit => 1000
t.text :body, :limit => 20000
t.boolean :published, :default => false
t.datetime :published_at
t.timestamps
end
end
def self.down
drop_table :articles
end
end
Run Code Online (Sandbox Code Playgroud)
如果您的类名与config/initializers/inflections.rb.
例如,如果您的语调包括:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'DOG'
end
Run Code Online (Sandbox Code Playgroud)
那么您可能需要确保迁移中的类是:
class CreateDOGHouses < ActiveRecord::Migration[5.0]
而不是:
class CreateDogHouses < ActiveRecord::Migration[5.0]
不是很常见,但是如果您生成迁移或模型或其他东西,然后将其中的一部分添加到变形中,则可能会发生。(这里的示例将导致NameError: uninitialized constant CreateDOGHouses如果您的类名是CreateDogHouses,至少在 Rails 5 中是这样。)
| 归档时间: |
|
| 查看次数: |
24168 次 |
| 最近记录: |