NoMethodError - 一对多关联

时间:2013-04-05 19:25:23

标签: ruby-on-rails ruby ruby-on-rails-3 model-view-controller

尝试调试几个小时没有任何意义的东西

错误是:

undefined method `proposals' for nil:NilClass

我在以下模型中有两个一对多关联:

entrepreneur.rb
...
 has_many :findentrepreneurs, :dependent => :destroy
...

finentrepreneur.rb

 belongs_to :entrepreneur
    has_many :proposals

proposal.rb

belongs_to :findentrepreneur

我使用以下方法做了嵌套路由模型:

resources :entrepreneurs do
             resources :messages do
               collection do
                 post :delete_selected
               end
             end
             resources :findentrepreneurs do
            resources :proposals
          end
           end

最后我的proposals_controller.rb新动作

def new
    @proposal = @findentrepreneurs.proposals.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @proposal }
    end
  end

希望有人可以提供帮助

三江源

1 个答案:

答案 0 :(得分:0)

您实际上无处初始化@findentrepreneurs。 Rails不是魔术,你需要在使用它之前实际为该变量赋值。否则,其值为nil,您会收到错误,告诉您已在proposals上调用方法nil