在Railscast#250之后引发了NoMethodError

时间:2013-08-23 04:59:30

标签: ruby-on-rails

我正在关注'从头开始验证'的railscast,但无法让它工作。

控制器:

class UsersController < ApplicationController
    def new
        @user = User.new
    end

    def create
        @user = User.new(params[:user])
        if @user.save
            redirect_to products_path, notice: 'User created successfully'
        else
            render 'new'
        end
    end
end

型号:

class User < ActiveRecord::Base
  has_secure_password

  attr_accessible :email, :password, :password_confirmation

  validates_uniqueness_of :email
end

用户#new form:

<h1>Sign up form</h1>

<%= form_for @user do |f| %>

    <%= f.label :email %>
    <%= f.text_field :email %>

    <%= f.label :password %>
    <%= f.password_field :password %>

    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation %>

    <%= f.submit %>

<% end %>

当我尝试转到新的用户表单时,它会抛出一个NoMethodError - 未定义的方法'email'引用包含'f.text_field:email'的行。

我在这里缺少什么?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您的users表格没有email列。请运行迁移以将列添加到users表。