1

在 Rails 应用程序视图中,以下工作正常:

<%= bc.items.uniq.collect{|g| g.display_name}.join(", ") %>

但是,我试图只收集 id 包含不超过 23 的数字的项目。我似乎无法正确使用语法。以下会产生错误。

<%= bc.items.uniq.collect{|g| g.display_name(false)}.join(", ").reject{g.id > 23} %>

错误信息:

undefined method `reject'

我可以使用“拒绝”吗?

4

1 回答 1

3
  1. 您需要.reject在您面前放.collect.join,因为您需要使用对象数组,.collect因此将根据我可以推断的内容返回一个字符串数组,并将其设为.join字符串。
  2. 您需要对g块进行参数。

这应该有效;

<%= bc.items.uniq.reject{|g| g.id > 23}.collect{|g| g.display_name(false)}.join(", ") %>
于 2013-06-06T19:58:50.923 回答