我有一个表单,用户在视图中提交电子邮件:views/about/home.html.haml
表格如下:
= 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 :(得分:2)
你应该添加
@waitinglist = Waitinglist.new
您home
的{{1}}方法中的。您的表单会尝试使用AboutController
,但如果您没有定义它,则会@waitinglist
,并且会抛出此异常。