我有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,我该如何实现呢?
答案 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)