我的理解是表之間的關係是通過外鍵實現的。但是,當您添加模型(belongs_to等)之間的關聯時,數據庫模式沒有任何更改。這是爲什麼?軌道實際上如何知道有一種關聯或關係?ruby on rails:爲什麼每個新模型關聯都沒有遷移?
1
A
回答
0
這裏的技巧是belongs_to,has_one,has_many只有在相應的鍵已經在數據庫中才有效。
鑰匙通常是<model>_id
。
因此,博客和博客之間的belongs_to關係要求您必須在posts表中使用關係創建blog_id。
博客和博文之間的has_many也一樣。
class Blog < ActiveRecord::Base
has_many :posts
end
需要遷移,在posts表中創建blog_id
外鍵。
0
Rails通過僅在模型中提及這些關係,而不僅僅用外鍵來識別所有表中的關聯。如果您不遵循外鍵的命名約定,那麼即使您提到模型中的關係,rails也會無法找到表之間的關係。然後你必須明確告訴foreign_key和類名。
class Article < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :article
end
在意見表中,你必須保持與自己的領域沿着article_id
。
然後rails會自動假定article_id
爲foriegn_key
。
如果你寫別的東西(例如:art_id
),而article_id
你必須儘可能告知:如果你寫別的東西
class Comment < ActiveRecord::Base
belongs_to :article, :class_name=>"Article", :foreign_key=>:art_id
end
相關問題
- 1. Ruby on Rails模型關聯
- 2. Ruby on Rails的:用戶模型關聯的應用和遷移
- 3. Ruby on Rails:模型,遷移和概述
- 4. Ruby on Rails遷移/模型刪除
- 5. Ruby On Rails遷移
- 6. Ruby on Rails的模型關聯
- 7. 如何遷移類似於Ruby on Rails遷移的Django模型?
- 8. 什麼樣的Ruby on Rails模型關聯「簡單」查找?
- 9. Rails與模型和遷移的關聯
- 10. Ruby on Rails模型關係
- 11. Ruby on Rails關係模型
- 12. Ruby on Rails - 模型關係
- 13. Ruby On Rails - 通過關聯的新模型對象
- 14. Rails模型與遷移過程有什麼關係?
- 15. Ruby on Rails:沒有表格的模型
- 16. 多個Ruby on Rails模型關係
- 17. 有沒有沒有遷移的modyfiong新Rails模型的方法?
- 18. Ruby on Rails「什麼是新的?」 - 模態
- 19. Ruby on Rails每個方法都做
- 20. Ruby on Rails 3.每個人都問題
- 21. ruby on rails種子.yml文件,其中有關聯的模型
- 22. Ruby on Rails - 多對一類型關聯
- 23. Rails STI模型沒有遷移表
- 24. 沒有遷移的模型。 Rails的
- 25. Ruby on Rails:將所有遷移合併爲一個
- 26. Ruby on Rails:如何遷移對模型所做的更改?
- 27. 爲什麼Ruby on Rails中has_many關聯導致SystemStackError?
- 28. Ruby on Rails中的關聯
- 29. Ruby on Rails - 可選關聯?
- 30. Ruby on Rails雙向關聯
(例如:'art_id'),而'article_id'你必須儘可能告知:' belongs_to:article,:class_name => Article,:foreign_key =>:art_id' – VenkatK