我刚刚开始在Ruby on Rails上开发,我对复杂的模型关系提出质疑。
我想知道在我要求新闻时如何获得用户信息。如何创建使这成为可能的关联模型?
-- 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 :(得分:1)
Tarscher是对的,你的生活很艰难......
你的id应该只是每个模型中的id。
如果您在新闻模型中有一个名为user_id或writer_id的外键,那么您需要在新闻模型上添加以下内容:
belongs_to :writer, :class_name => "User"
然后在获得新闻模型时包括所有用户,您可以像这样调用新闻:
News.includes(:writer)
但实际上你应该尝试遵循rails约定,因为它会让你的生活更轻松......你没必要,它非常灵活,但框架是基于约定优于配置。