0

実際、@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 %>
4

3 に答える 3

2

tag_strings反復の開始時に初期化されません。おそらく、すべてのタグに参加したいでしょう。だったらやってみる tag_strings = @community.tags.map(&:name).join(", ")

于 2013-02-22T13:22:25.747 に答える
2

次のように、これをよりきれいに実現できます。

<%= render 'layouts/twitter', :tag => @community.tags.collect(&:name).join(",") + @community.community_name %>
于 2013-02-22T13:25:08.700 に答える
0

..またはさらにきれいに...

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

= render 'layouts/twitter', tag: @community.tags_string
于 2013-02-22T13:37:13.220 に答える