2014-05-14 89 views
0

我有一個文章模型,它可以只有一個與之相關的圖像模型。但是,我的圖像模型可以關聯到許多文章。我在這第一個嘗試是通過定義的關係:Rails關聯設計

class Article < ActiveRecord::Base 
    belongs_to :image 
end 

class Image < ActiveRecord::Base 
    has_many :articles :dependent => :nullify 
end 

這在技術上可行,它只需要image_id外鍵是在文章表。從數據庫的角度來看這非常合理,但感覺不對。說一篇文章屬於圖片是沒有意義的。實際上,一張圖片屬於一篇文章。說文章has_one圖像會更有意義,但是如果我使用has_one將article_id外鍵放在Images表上。由於圖像可以有多個文章,因此在Images表上定義一個article_id列是沒有意義的。

有一個更簡單的方法來建模。

+2

那麼,從數據庫的角度來看它是有道理的,所以我願意這樣做。由於措辭的原因,從Rails的角度來看可能並不完美,但這種關係是合適的。 –

回答

0

這會幫你嗎?

class Article < ActiveRecord::Base 
    has_one :image 
end 

class Image < ActiveRecord::Base 
    has_and_belongs_to_many :articles, :dependent => :nullify 
end