我使用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,它适用于其他型号。为什么不设计?
答案 0 :(得分:1)
在User
模型中,写下:
attr_accessible :first_name, :last_name
你很高兴。