Rails 3,使用外键生成迁移
如何使用外键进行或生成迁移?我有 municipios
表,我想与表 ciudades
关联,该表将具有以下字段:nombre_id
(名称 id)、< code>nombre(名称),departamento
(部门)在这种情况下,我如何运行脚手架脚本来生成外键迁移?
How I can do or generate a migration with a foreign key? I have municipios
table, and I want to relate with the table ciudades
, the table will have these fields: nombre_id
(name id), nombre
(name), departamento
(department) in this case how I can run the scaffold script to generate the foreign key migration?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的意思是要创建迁移文件,则命令为
railsgeneratemigrationNAME[field:typefield:type][options]
或快捷方式
railsgmigrationNAME[field:typefield :type] [options]
但是如果你想从引用其他模型的模型创建一个脚手架。也许您可以像这样
使用脚手架创建 ciudades 模型
创建引用 ciudades 的 municipios 模型,
这将在 municipios 表上创建属性 ciudades_id 。
迁移应该如下所示。
同样在 municipios 模型上,它将创建
belongs_to
关系。但这不会更新 cuidades 模型。您必须指定关系。
另请记住,rails 会自动在模型上创建 id 字段。这是公约。如果您的意思是 nombre_id 是主键,则必须自行指定。
希望这有帮助
If you mean that you want to create the migration file the command is
rails generate migration NAME [field:type field:type] [options]
or shortcut
rails g migration NAME [field:type field:type] [options]
But if you want to create a scaffold from model that referencing other model. Maybe you could do it like this
create ciudades model with scaffold
create municipios model that reference ciudades
this will create attribute ciudades_id on the municipios table.
The migration should look like this.
also on the municipios model it will create the
belongs_to
relation.but this does not update the
cuidades
model. You have to specify the relation.Also keep in mind that rails automatically create id field on a model. it is the convention. if you mean that nombre_id is the primary key, you have to specify it your self.
Hope this help
Scaffold 不会为您创建关系。它将创建视图、控制器等,但其余部分(关系)需要手动编码。
所以你搭建了“municipios”,但是如果你想让municipio有很多ciudades,你需要自己做。例如:
当scaffold给你:
你需要将其更改为:
Scaffold will not create the relationships for you. It will create views, controllers and others but the rest (relationships) need to be coded by hand.
So you scaffold "municipios", but if you want municipio has many ciudades, you need to do it yourself. For example:
When scaffold gives you:
You need to change it to: