我有一个Rails简单应用程序,它有两个主要模型。人模型和礼物模型。礼物属于人,人们有很多礼物。
我目前(在人员索引视图中)使用以下代码列出数据库中的所有人员:
<% for person in @people %>
<li><%= link_to h(person.name), person %></li>
<% end %>
我想做的是,在括号中与姓名旁边的人相关联的礼物数量。例如:
Danny McC (10)
这是否有内置的方式?如:
<%= @person.name.count =>
这可能吗?
谢谢,
丹尼
答案 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 %>