nil的未定义方法`each':NilClass。发生了什么?

时间:2017-08-06 07:57:08

标签: ruby-on-rails

发生了什么事? (也可以从所有视图页面访问一个控制器吗?)对我来说看起来没问题,我不确定发生了什么,但它只是让我误解了这个错误,说“未定义的方法`每个'为nil:NilClass”。发生这种事我感到非常难过。

我的控制器:

  def create
    Venue.create(params[:venue_params])
  end

  def index
    @venues = Venue.all
  end

  def show 
    @venues = Venue.all
  end

  def info
    @venues = Venue.all
  end

我的观点:

<table>
    <tr> 
        <th> Venues </th>
    </tr>
    <%= @venues.each do |venue| %>
        <tr>
        <td><%= venue.venue_name %> </td>
        </tr>
        <% end %>
</table>

1 个答案:

答案 0 :(得分:0)

这是因为@venues没有记录,你可以先检查它,然后再使用代码进行检查,以防止出现错误

<table>
    <tr> 
        <th> Venues </th>
    </tr>
    <% if @venues %>
      <%= @venues.each do |venue| %>
        <tr>
        <td><%= venue.venue_name %> </td>
        </tr>
      <% end %>
    <% end %>
</table>