在rails应用视图中,以下工作正常:
<%= bc.items.uniq.collect{|g| g.display_name}.join(", ") %>
但是,我正在尝试仅收集包含数字达到并包含23的ID的项目。我似乎无法正确使用语法。以下内容会产生错误。
<%= bc.items.uniq.collect{|g| g.display_name(false)}.join(", ").reject{g.id > 23} %>
错误消息:
undefined method `reject'
我可以使用'拒绝'吗?
答案 0 :(得分:3)
.reject
放在.collect
和.join
之前,因为您需要处理对象数组,.collect
将返回一个字符串数组我可以推断,.join
会使它成为一个字符串。g
作为块的参数。这应该有用;
<%= bc.items.uniq.reject{|g| g.id > 23}.collect{|g| g.display_name(false)}.join(", ") %>