2012-12-13 52 views

回答

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_idforiegn_key
如果你寫別的東西(例如:art_id),而article_id你必須儘可能告知:如果你寫別的東西

class Comment < ActiveRecord::Base 
belongs_to :article, :class_name=>"Article", :foreign_key=>:art_id 
end 
+0

(例如:'art_id'),而'article_id'你必須儘可能告知:' belongs_to:article,:class_name => Article,:foreign_key =>:art_id' – VenkatK