如何在RoR中执行此搜索?

时间:2010-08-09 05:55:16

标签: ruby-on-rails

这是Ruby on Rails中数据库的结构:

  • 用户有很多笔记
  • 笔记有很多类别
  • 类别有很多笔记

备注和类别之间的关系为has_many :through,我有一个名为NoteCategory的模型和一个note_categories表。

音符模型有一个日期字段,表示创建音符的日期。

我使用此行获取用户的注释:

current_user.notes

如何提供日期并取回在该日期创建的所有用户注释的类别?谢谢你的阅读。

编辑:忘记提及我还需要通过附加注释的created_at字段来排序类别。

编辑2:这是实际的关联

user.rb

has_many :notes

note.rb

belongs_to :user 
has_many :note_categories
has_many :categories, :through => :note_categories

category.rb

has_many :note_categories
has_many :notes, :through => :note_categories

1 个答案:

答案 0 :(得分:2)

鉴于你有

class User
  has_many :notes
  has_many :categories, :through => :notes
end

class Note
  has_many :categories # <-- source reflection
end

然后使用此查找器:

user.categories.all(:order => 'notes.created_at')

user.categories.find :all, :order => 'notes.created_at'