rails habtm relation

时间:2009-12-22 14:16:58

标签: ruby-on-rails has-and-belongs-to-many

我有2个模型,它们具有has_and_belongs_to_many关系:

class Category < ActiveRecord::Base
  has_and_belongs_to_many :templates
end

class Template < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

我想知道如何通过此关系获取类别名称,例如我找到第一个模板:

t = Template.find(:first)

然后使用t.categories将返回一个对象,但我想要返回category.name,我该如何实现呢?

3 个答案:

答案 0 :(得分:3)

要获取与第一个Template实例关联的类别的名称,您可以执行以下操作:

Template.first.categories.collect(&:name)

- 这使用Rails添加的Symbol#to_proc支持。有关详情,请参见this Railscast

答案 1 :(得分:0)

t.categories.first.name

答案 2 :(得分:0)

假设类别记录具有名称字段,您可以这样做:

t.categories.map(&:name)