使用设计时未设置模型属性?

时间:2011-05-01 19:06:00

标签: ruby-on-rails ruby validation model devise

我使用devise来创建用户模型。它包含来自devise的所有默认内容以及另外2个数据库列:first_name和last_name。非常简单的东西。

我正在编写一些测试来试用它:

  @user = User.new(:first_name => "Ken", :email => 'myemail@gmail.com', :password => 'apassword')
  @user.valid?
  puts "user's first name: #{@user.first_name}"
  puts @user.errors

在我的模型中,我有这个:

class User < ActiveRecord::Base

  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable

  attr_accessible :email, :password, :password_confirmation, :remember_me

  validates_presence_of :first_name

end

由于某种原因,当我在构造函数中传递它时,“first_name”没有被设置。密码和电子邮件已设置,但不是first_name。

有谁知道为什么?我玩过一些rails,它适用于其他型号。为什么不设计?

1 个答案:

答案 0 :(得分:1)

User模型中,写下:

attr_accessible :first_name, :last_name

你很高兴。