实际上,@ community有4个标签,因此它不应该返回nil错误 但是在这种情况下,它会像这样返回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 %>
答案 0 :(得分:2)
tag_strings
未初始化。也许你想加入所有标签。如果是,那就试试吧
tag_strings = @community.tags.map(&:name).join(", ")
答案 1 :(得分:2)
你可以更加整洁地实现这一点:
<%= render 'layouts/twitter', :tag => @community.tags.collect(&:name).join(",") + @community.community_name %>
答案 2 :(得分:0)
..甚至更整洁......
class Community < ActiveRecord::Base
def tags_string
"#{tags.collect(&:name).join(',')} #{community_name}"
end
end
= render 'layouts/twitter', tag: @community.tags_string