2012-02-13 35 views
0

我剛剛開始在Ruby on Rails上開發,並且我對複雜模型關係有疑問。數據庫新聞 - > RoR上的用戶關聯

我想知道當我要求新聞時,如何獲得用戶信息。我如何創建使其成爲可能的關聯模型?

-- USER -- 
t.integer :uid 
t.string :username 
t.string :password 
t.string :email 
t.string :firstname 
t.string :lastname 
t.integer :promo 
t.integer :access_level 
t.datetime :birthday 
t.datetime :last_login 


-- NEWS -- 
t.integer :news_id 
t.integer :writter_id 
t.datetime :date 
t.string :title, :limit => 50 
t.string :category, :limit => 10 
t.text  :content 
t.valided :boolean 
t.onscreen :boolean 

所以,我請求新的使用:

def self.getLastNews(max_entry = 5) 
    nws = News.order(:date).limit(max_entry).map 
end 
+0

你仍然可以更改數據庫,因爲它沒有使用atciverecords命名約定 – Tarscher 2012-02-13 11:09:56

回答

1

Tarscher是正確的,你讓你的生活困難......

你的ID的應該只是在每個模型的ID。

如果你將不得不叫user_id的新聞模式,或writer_id外鍵,但你需要對新聞模型添加assoiation爲:

belongs_to :writer, :class_name => "User" 

則包括所有用戶當你得到的消息模型,你會叫的消息是這樣的:

News.includes(:writer) 

但真的,你應該儘量遵循Rails慣例,因爲它會令你的生活更輕鬆......你不就得了,這是非常靈活,但框架基於約定而不是配置。

+0

thx你,它現在工作 – 0xBAADF00D 2012-02-13 11:35:22