Rails outputting object hash

2020-04-21 07:52发布

问题:

This is interesting. I have some view code that looks like this:

    <%= @cause.updates.each do |update| %>
      <div class="streamComment group">

      <img class="userPhoto" src="<%= update.user.avatar.url %>">

      <p class="userComment"><%= update.update_text %></p>
      </div>
    <% end %>

Between the end of the paragraph tag and the end of the div tag, rails is outputting the hash of the update object i.e. "<#Update 0x6993934ksf>" when nothing exists there in the view. What could be causing this?

回答1:

Your using <%= %> where you need <% %>. Since each returns the object it iterated over, once you are done iterating over updates, updates is returned and output to the HTML

<% @cause.updates.each do |update| # remove the = at the beginning of this line %>
  <div class="streamComment group">

  <img class="userPhoto" src="<%= update.user.avatar.url %>">

  <p class="userComment"><%= update.update_text %></p>
  </div>
<% end %>