为什么在这种情况下我会收到nil错误?

时间:2013-02-22 13:17:28

标签: ruby-on-rails ruby-on-rails-3

实际上,@ 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 %>

3 个答案:

答案 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