【发布时间】:2013-06-27 00:50:21
【问题描述】:
我有一个用户提交电子邮件的表单,它在视图中: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
怎么了?
【问题讨论】:
-
应该可以工作..请发布更多代码
-
你必须在
views/about/home.html.haml对应的控制器动作中定义@waitinglist。 -
@Mischa 你的意思是在 about 控制器中?我应该如何定义他们?
-
是的,如果它具有呈现
views/about/home.html.haml的操作,那么您必须在那里定义@waitinglist。您应该添加@waitinglist = Waitinglist.new。
标签: ruby-on-rails ruby-on-rails-3 haml