焙烧中的NoMethodError #index - 未定义的方法`每个'为nil:NilClass

时间:2018-02-06 19:20:29

标签: ruby-on-rails

我刚刚更新了两个模型中的两个列名,(Countries& Regions),现在在查看另一个模型Roasts的页面时,我突然得到一个NoMethodError 。我无法弄清楚我做了什么。我刚刚回滚了两次迁移,正如我所怀疑的那样,这还没有解决问题。 Roasts has_many :countriesCountries has_many :regions之间存在关系。我有一个嵌套的表单来添加烤架上的国家和地区#new form。

无法发现我搞砸了什么。

roasts_controller.rb

class RoastsController < ApplicationController
has_many :countries      
accepts_nested_attributes_for :countries

  def index
      @q = Roast.ransack(params[:q])
      @roastsalpha = @q.result.order(:name)
      @roastcount = Roast.count(:country)
      @roasts = Roast.all
  end

烤/ index.html.erb

<% @roasts.each do |roast| %>

<div class="card">
  <div class="card-block">
    <div class="media">
      <div class="media-body">
        <%= link_to roast_path(roast) do %> <h3 class="mt-0"><%= roast.name %></h3><% end %>
        by <%= roast.roaster %><br />
        <hr />
        <i class="fa fa-filter" aria-hidden="true"></i> - <%= roast.bestfor %><br />
        <i class="fa fa-tint" aria-hidden="true"></i> - <%= roast.roast %><br />
        <i class="fa fa-sticky-note-o" aria-hidden="true"></i> - <%= roast.tastingnotes %><br />
        <hr />
        <p><small>Added on - <%= roast.created_at.strftime("%e %B %Y") %></small></p>
      </div>
    </div>
  </div>
</div>
<br />

<% end %>

1 个答案:

答案 0 :(得分:1)

这些行需要进入你的Roast模型,而不是你的控制器:

has_many :countries
accepts_nested_attributes_for :countries