在Rail应用程序中添加belongs_to关系中的记录数量?

时间:2010-10-23 10:51:07

标签: ruby-on-rails count lookup relationship

我有一个Rails简单应用程序,它有两个主要模型。人模型和礼物模型。礼物属于人,人们有很多礼物。

我目前(在人员索引视图中)使用以下代码列出数据库中的所有人员:

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

我想做的是,在括号中与姓名旁边的人相关联的礼物数量。例如:

Danny McC (10)

这是否有内置的方式?如:

<%= @person.name.count =>

这可能吗?

谢谢,

丹尼

2 个答案:

答案 0 :(得分:4)

不要接受我的回答,因为我不想窃取Yannis的观点,但他的方法可以这样重写:

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

实际上,我也会遗漏return。最后一个语句在Ruby中自动返回。

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

答案 1 :(得分:1)

如果您的人物模型有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 %>