2013-02-22 116 views
0

的确,@community有4个标签,因此它不应该返回零错误。
但是在这种情况下,它会返回像这样的nil错误。为什么以及如何修复?为什么在这种情况下我得到零错误?

ActionView::Template::Error (undefined method `+' for nil:NilClass): 

我的代码

<% @community.tags.each do |tag| %><% tag_strings = tag_strings + tag.name + "," %><% end %> 
<%= render 'layouts/twitter', :tag => tag_strings + @community.community_name %> 
+2

你初始化'tag_strings'给'” “在这个代码之前? – Dogbert 2013-02-22 13:21:20

+0

@DOgbert号我没有 – HUSTEN 2013-02-22 13:21:48

+1

那么这就是你应该做的:) – Dogbert 2013-02-22 13:24:15

回答

2

tag_strings未初始化的迭代开始时。也许你想加入所有的标签。如果是这样,然后尝试 tag_strings = @community.tags.map(&:name).join(", ")

+0

感谢这就是我想要的:) – HUSTEN 2013-02-22 13:26:48

2

你可以像这样更加整齐实现这一目标:

<%= render 'layouts/twitter', :tag => @community.tags.collect(&:name).join(",") + @community.community_name %> 
0

..或更整齐......

class Community < ActiveRecord::Base 
    def tags_string 
    "#{tags.collect(&:name).join(',')} #{community_name}" 
    end 
end 

= render 'layouts/twitter', tag: @community.tags_string 
相关问题