рельсы хабтм отношение - PullRequest
0 голосов
/ 22 декабря 2009

У меня есть 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 ]

3 голосов
/ 22 декабря 2009

Чтобы получить имена категорий, связанных с вашим первым Template экземпляром, вы можете сделать:

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

- Используется поддержка Symbol#to_proc, добавленная Rails. Больше информации в этом Railscast .

0 голосов
/ 22 декабря 2009

Предположим, что запись категории имеет поле с именем, которое вы можете сделать:

t.categories.map(&:name)
0 голосов
/ 22 декабря 2009
t.categories.first.name
...