2013-06-26 56 views
1

我有表单,用户提交电子邮件,其在视图中:views/about/home.html.haml未定义的方法`MODEL_NAME”的NilClass:类 - on Rails应用程序的红宝石

的形式如下:

= form_for @waitinglist do |f| 
    = f.email_field :email, placeholder: "Enter your email", autofocus: :true 
    = button_tag class: "btn btn-large btn-block btn-primary sigin-button" do 
    %p Put me on the waiting list 

控制器看起来是这样的:

class WaitinglistsController < ApplicationController 
    def create 
    @waitinglist = Waitinglist.new(params[:waitinglist]) 
    if @waitinglist.save 
     redirect_to root_path 
    else 
     render action: :new 
    end 
    end 

    def new 
    @waitinglist = Waitinglist.new 
    end 
end 

这个模型看起来是这样的:

class Waitinglist < ActiveRecord::Base 
    attr_accessible :email 
    validates :email, presence: true 
end 

但我收到此错误:

undefined method `model_name' for NilClass:Class 

有什么不对?

+0

应该工作..请张贴更多代码 – Lichtamberg

+1

您必须在与views/about/home.html.haml相对应的控制器操作中定义'@ waitinglist'。 – Mischa

+0

@Mischa你是说在about控制器?我应该怎样定义他们的? – SHUMAcupcake

回答

2

你应该在你AboutControllerhome方法添加

@waitinglist = Waitinglist.new 

。你的表单试图使用@waitinglist,但是如果你没有定义它,它将会是nil,这个异常将被抛出。

相关问题