2013-06-26 92 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,這個異常將被拋出。

相關問題