如何使用外鍵執行遷移或生成外鍵?我有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. 使用update_attribute運行Rails 3遷移時發生只讀錯誤
- 14. Rails - 從模型生成遷移腳本
- 15. 帶選項的Rails遷移生成
- 16. 從模式生成Rails遷移
- 17. Rails遷移以生成日曆表
- 18. Rails遷移和架構(生成/銷燬)
- 19. Rails的生成遷移文件支架
- 20. Rails從模型生成遷移
- 21. 無法在rails上生成遷移2.3.4
- 22. 什麼是使用t.integer和t.reference在Rails遷移定義外鍵
- 23. Rails的:如何創建添加遷移「使用:B樹」外鍵
- 24. 如何使用外鍵laravel 5.1遷移
- 25. 使用django的外鍵遷移南
- 26. Rails的遷移回滾:如何刪除生成的遷移
- 27. rails g遷移「命令」以生成列重命名遷移?
- 28. Cakephp 3.0由遷移生成的外鍵烘烤錯誤
- 29. Rails 3:遷移數據
- 30. Rails 3遷移和application.rb