注册表单错误:NilClass:Class的未定义方法`model_name'

时间:2015-02-06 10:28:55

标签: ruby-on-rails ruby simple-form

所以这是我第一次尝试没有教程指导在RoR上构建网站。设置我的电子邮件注册表单时遇到一些麻烦。我认为我的模型如何设置或连接存在问题但不太确定。获取"未定义的方法`model_name'对于NilClass:Class"作为错误"。

signup.rb

class Signup < ActiveRecord::Base
    validates_presence_of :email

    def change
        create_tabe :quotes do |t|

            t.string :email
        end
    end

end

signups_controller.rb

class SignupsController < ApplicationController

    def new
        @signup = Signup.new
    end

    def create
        @signup = Signup.new(secure_params)
        if @signup.valid?
            redirect_to root_path
        else
            render :new
    end

    private

    def secure_params
        params.require(:signup).permit(:email)
    end

end

视图的简单表单部分

<%= simple_form_for @signup do |f| %>
  <%= f.input :email %>
  <%= f.submit 'Signup', :class => 'btn btn-success' %>
<% end %>

的routes.rb

Rails.application.routes.draw do

  root 'pages#index'
  get '/about' => 'pages#about'
  get '/tour' => 'pages#tour'
  get '/music' => 'pages#music'

  resources :signups, only: [:new, :create]
end

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

<%= simple_form_for @signup do |f| %> 
to 


<%= simple_form_for :signup  do |f| %> 

现在它不会因为符号:signup而引发任何错误,但是要提交表单,您需要action attributes,因为您可以使用url: { action: "create" } {{ 3}}

希望这对你有所帮助。