2011-11-02 74 views
0

我是Ruby on Rails的初學者。我有一個關於組織對象和類的問題。在Ruby中組織類和對象?

我有了幾個字段,如作者,關鍵詞,日期等的文章類

的問題是,我要組織這些文章的對象,以便能夠共同對它們進行分析。這些文章來自不同的來源,我希望能夠根據來源訪問它們。

我猜我可以爲ArticleSource創建一個新類,並通過has_one或embeds_one之類的關係將其與Article類關聯。我做對了嗎,還是有更好的辦法?

在此先感謝!

+0

你是什麼「來源」的定義? 「紐約時報」會成爲一個文章來源嗎? –

回答

0

我覺得has_manybelongs_to會做你想要什麼。

添加article_source_id列到第表後,你的類會是這個樣子:

class ArticleSource 
    has_many :articles 
end 

class Article 
    belongs_to :article_source 
end 

然後你就可以共同使用這樣的代碼分析文章:

source = ArticleSource.find_by_name("New York Times"); 
articles = source.articles 
+0

後續問題:如何創建數據源?我需要在控制器中設置字段嗎?像article.article_source.create()? – maru

+0

不,這會給出錯誤,因爲article_source將爲零。你可以這樣做: 'source = ArticleSource.create! :name =>「紐約時報」; article.article_source = source'或'article.article_source_id = source.id'。 –

+0

對不起,我是新手,但你有這樣的示例代碼?或者你能指點我一個教程?謝謝。 – maru

0

我想你應該看看這裏的單表繼承。

保持文章的超類,它繼承到子類作爲ExtertArticle(源專家)和StudentArticle等等

參考:http://api.rubyonrails.org/classes/ActiveRecord/Base.html

+0

我認爲這比需要更復雜。你爲什麼認爲「來源」應該是文章的這樣一個特殊屬性,應該像這樣對待?如果開發者擁有「格式」等其他屬性(例如網絡,雜誌,博客文章);是什麼讓「源」比「格式」更重要? –