我试图生成一个新模型,并忘记引用另一个模型的ID的语法。我自己也会去查,但我还没有在所有Ruby on Rails文档链接中找到确切的源代码。
项目名称:字符串描述:文本(这里是reference:product或references:product)。但更好的问题是,我在哪里或如何在未来轻松地寻找这种愚蠢?
注意:我已经知道,如果我输入错了其中一个选项并运行迁移,那么Ruby on Rails将完全搞砸我的数据库……而rake db:rollback对于这种错误是无能为力的。我确定我只是有些地方不明白,但在我明白之前…rails g模型返回的“详细”信息仍然让我抓挠…
要创建引用另一个模型的模型,请使用Ruby on Rails模型生成器:
$ rails g model wheel car:references
生成app/models/wheel.rb:
class Wheel < ActiveRecord::Base
belongs_to :car
end
并添加以下迁移:
class CreateWheels < ActiveRecord::Migration
def self.up
create_table :wheels do |t|
t.references :car
t.timestamps
end
end
def self.down
drop_table :wheels
end
end
当你运行迁移时,下面的文件会出现在你的db/schema.rb中:
$ rake db:migrate
create_table "wheels", :force => true do |t|
t.integer "car_id"
t.datetime "created_at"
t.datetime "updated_at"
end
至于文档,rails生成器的起点是《Ruby on rails: rails命令行指南》,它指向API文档以获取更多可用字段类型的信息。
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references
参见表定义部分。
要创建引用另一个模型的模型,请使用Ruby on Rails模型生成器:
$ rails g model wheel car:references
生成app/models/wheel.rb:
class Wheel < ActiveRecord::Base
belongs_to :car
end
并添加以下迁移:
class CreateWheels < ActiveRecord::Migration
def self.up
create_table :wheels do |t|
t.references :car
t.timestamps
end
end
def self.down
drop_table :wheels
end
end
当你运行迁移时,下面的文件会出现在你的db/schema.rb中:
$ rake db:migrate
create_table "wheels", :force => true do |t|
t.integer "car_id"
t.datetime "created_at"
t.datetime "updated_at"
end
至于文档,rails生成器的起点是《Ruby on rails: rails命令行指南》,它指向API文档以获取更多可用字段类型的信息。
有很多数据类型,你可以在创建模型时提到,一些例子是:
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean, :references
语法:
field_type:data_type