отношения рельсов habtm
-
20-09-2019 - |
Вопрос
У меня есть 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, как мне этого добиться?
Решение
Чтобы получить названия категорий, связанных с вашим первым Template
например, вы можете сделать:
Template.first.categories.collect(&:name)
— Здесь используется Symbol#to_proc
поддержка, которую добавляет Rails.Более подробная информация в это Railscast.
Другие советы
t.categories.first.name
Предположим, что запись категории имеет поле имени, которое вы можете сделать:
t.categories.map(&:name)
Не связан с StackOverflow