Добавить количество записей в отношении принадлежат_ в приложении Rail? - PullRequest
1 голос
/ 23 октября 2010

У меня есть простое приложение Rails, которое имеет две основные модели. Модель человека и модель подарка. Подарки принадлежат людям, а у людей много подарков.

Я сейчас (в представлении индекса людей) перечисляю всех людей в базе данных со следующим кодом:

<% for person in @people %>
<li><%= link_to h(person.name), person %></li>
<% end %>

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

Danny McC (10)

Есть ли встроенный способ сделать это? Такие как:

<%= @person.name.count =>

Возможно ли это?

Спасибо

Danny

Ответы [ 2 ]

4 голосов
/ 23 октября 2010

Не принимайте мой ответ, потому что я не хочу красть очки Янниса, но его метод можно переписать так:

def name_and_gifts_count
  return "#{name} (#{gifts.count})"
end

На самом деле, я быпропустите return тоже.Последний оператор автоматически возвращается в Ruby.

def name_and_gifts_count
  "#{name} (#{gifts.count})"
end
1 голос
/ 23 октября 2010

Если у вашей модели Person есть has_many :gifts, в вашей модели также добавьте:

de name_and_gifts_count
  name_and_gifts_count = name
  name_and_gifts_count += '('
  name_and_gifts_count += gifts.count.to_s
  name_and_gifts_count += ')'
  return name_and_gifts_count
end

, затем в вашей ссылке используйте:

<%= link_to h(person.name_and_gifts_count), person %>
...