如何使用外键执行迁移或生成外键?我有municipios
表,并且我想与表ciudades
关联,表中将包含以下字段:nombre_id
(name id),(name),departamento
(department)在这种情况下,我如何运行脚手架脚本来生成外键迁移?Rails 3,使用外键生成迁移
3
A
回答
5
如果你的意思是你要创建的迁移文件的命令是
rails generate migration NAME [field:type field:type] [options]
或快捷方式
rails g migration NAME [field:type field:type] [options]
但是,如果你想创建从引用了其他模型的模型支架。也许你可以做这样的
创建脚手架ciudades模型
rails g scaffold ciudades nombre_id:integer nombre:integer departamento:string
创建municipios模型引用ciudades
rails g scaffold municipios ciudades:references
这将创建属性上municipios表ciudades_id。 迁移应该看起来像这样。
class CreateMunicipios < ActiveRecord::Migration
def self.up
create_table :municipios do |t|
t.references :ciudades
t.timestamps
end
end
def self.down
drop_table :municipios
end
end
也在自治市模型它将创建belongs_to
关系。
但这并不更新cuidades
模型。你必须指定关系。
另外请记住,rails自动在模型上创建id字段。这是惯例。如果你的意思是nombre_id是主键,你必须指定它你的自我。
希望得到这个帮助
0
脚手架不会为您创建关系。它将创建视图,控制器和其他人,但其余(关系)需要手工编码。
所以你脚手架“municipios”,但如果你想municipio有很多ciudades,你需要自己动手。例如:
当支架为您提供:
<% form_for([@municipio]) do |f| %>
您需要将其更改为:
<% form_for([@municipio, @ciudad]) do |f| %>
相关问题
- 1. 在Rails之外生成迁移
- 2. Rails迁移未生成迁移文件
- 3. 外键使迁移
- 4. SubSonic 3 ActiveRecord迁移忽略外键
- 5. 学说1.2生成的迁移-Diff,产生唯一的外键迁移
- 6. 迁移到Rails 3
- 7. Rails 3在迁移问题中添加外键
- 8. Rails迁移问题 - 外键未创建
- 9. Rails迁移后没有PostgreSQL外键
- 10. Doctrine迁移外键
- 11. Rails 3生成迁移 - 没有向上或向下的方法
- 12. 插件中的生成器和迁移(rails 3)
- 13. 使用django的外键迁移南
- 14. Rails - 从模型生成迁移脚本
- 15. Rails迁移以生成日历表
- 16. 无法在rails上生成迁移2.3.4
- 17. Rails的生成迁移文件支架
- 18. 从模式生成Rails迁移
- 19. 什么是使用t.integer和t.reference在Rails迁移定义外键
- 20. Rails的:如何创建添加迁移“使用:B树”外键
- 21. 使用update_attribute运行Rails 3迁移时发生只读错误
- 22. Cakephp 3.0由迁移生成的外键烘烤错误
- 23. 自动生成新迁移
- 24. Rails 3:迁移数据
- 25. Rails 3的迁移错误
- 26. Rails 3迁移和application.rb
- 27. Rails 3迁移错误
- 28. 如何使用Rails :: Generators.invoke(“active_record:migration”)生成创建表迁移文件?
- 29. knex迁移创建外键
- 30. 使用生成器添加迁移