Rails搜索=>模范关系

时间:2012-06-16 01:51:59

标签: ruby-on-rails ruby-on-rails-3

我有一个名为'Notes'的主模型,其中包含以下内容:

attr_accessible :name, :label_tokens
has_many :labelships
has_many :labels, :through => :labelships
attr_reader :label_tokens

所以基本上是Note_id& Label_id保存在Labelships表中。

我想要做的是创建一个不同标签的列表,并在每个值上创建一个链接到相应的Note。

示例:注意'mynote'有一个标签'git'通过labelship表关联,我希望Git出现在其他标签列表中,然后当我点击git时,我得到一个Notes列表在他们身上贴上'git'标签。

1 个答案:

答案 0 :(得分:1)

假设您有以下型号:

class Note
  has_many :labelships
  has_many :labels, :through => :labelships
end

class Labelships
  belongs_to :note
  belongs_to :label
end

class Label
  has_many :labelships
  has_many :notes, :through => :labelships
end

现在给出一个标签,你可以得到如下注释:

label.notes

要排除手中的注释:

label.notes.where("id != ?", note.id)