0

Rails -v 3.2.3

私は自分のビューでテーブル内のリンクを表示しようとしています NoMethodError in Links#submissions , views/links/submissions.html.erb where line #10 raised: undefined method "each" for nil:NilClass

ここに私のsubmission.htm.erbがあります

<table>
<% @links.each do |link| %>
  <tr valign = "top">
    <td>
      <%= link_to_remote "Up",
                        :url => { :action => 'modify_points',
                               :id => link.id,
                               :by => 1 },
                    :update => "link" + link.id.to_s %>
</td>
<td>
  <%= link_to_remote "Down",
                    :url => { :action => 'modify_points',
                              :id => link.id,
                              :by => -1 },
                    :update => "link" + link.id.to_s %>

</td>

<td>
  <b> <a href="<%= link.url %>"> <%= link.description %> </a> </b>
  (<%= if link.url =~ /(:\/\/) ([^\/]*)/ then $2 else "wrong URL" end %>) <br/>
  <span id="link"><%= link.id.to_s %>"%><%= link.points %> </span>
  points posted <%= time_ago_in_words link.created_at %> ago
</td>

  </tr>
<% end %>
</table>

私の質問は....リンクがない場合にコードを書く必要がありますか?これが、このエラーメッセージが表示される理由ですか?

4

1 に答える 1

1

はい、@linksがコンテキストに存在するかどうかわからない場合は、後悔するよりも安全です。

<% if @links.present? %>
  <% @links.each do |link|
    etc 
  <% end %>
<% end %>

など...多分これのためのいくつかのより良いルビーの速記があります..もしそうなら、誰かが私たちに思い出させると確信しています。:)

于 2012-06-09T03:47:16.317 に答える