为什么在这种情况下我得到零错误?
问题描述:
的确,@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 %>
答
tag_strings
未初始化的迭代开始时。也许你想加入所有的标签。如果是这样,然后尝试 tag_strings = @community.tags.map(&:name).join(", ")
+0
感谢这就是我想要的:) – HUSTEN 2013-02-22 13:26:48
答
你可以像这样更加整齐实现这一目标:
<%= render 'layouts/twitter', :tag => @community.tags.collect(&:name).join(",") + @community.community_name %>
答
..或更整齐......
class Community < ActiveRecord::Base
def tags_string
"#{tags.collect(&:name).join(',')} #{community_name}"
end
end
= render 'layouts/twitter', tag: @community.tags_string
你初始化'tag_strings'给'” “在这个代码之前? – Dogbert 2013-02-22 13:21:20
@DOgbert号我没有 – HUSTEN 2013-02-22 13:21:48
那么这就是你应该做的:) – Dogbert 2013-02-22 13:24:15