【发布时间】:2011-05-18 01:51:04
【问题描述】:
我有三门课;用户、提要和条目。用户有一个或多个 Feed,而 Feed 有一个或多个条目:
class Feed < ActiveRecord::Base
has_many :entries
has_many :feeds_users
has_many :users, :through => :feeds_users, :class_name => "User"
end
Class User < ActiveRecord::Base
has_many :feeds_users
has_many :feeds, :through => :feeds_users, :class_name => "Feed"
end
class Entry < ActiveRecord:Base
belongs_to :feed
end
User 和 Feed 类通过第三个表关联:
class FeedsUser < ActiveRecord::Base
belongs_to :user
belongs_to :feed
end
现在,我的问题是我需要获取某个用户的提要和每个提要的最新 n 个条目。我正在摆弄这样的事情:
u = User.first
Feed.joins(:entries, :users).where(:entries => { :created_at => (Time.now-2.days)..Time.now }, :users => u)
我的问题是,这会生成一些 SQL 来尝试查询表“feeds”上的“users”——它不存在。
如何创建一个正确的查询,以便为我提供给定用户的所有提要及其最新的 10 个条目?
【问题讨论】:
标签: ruby-on-rails join has-many-through