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

发布于 2024-11-04 06:16:35 字数 1024 浏览 3 评论 0原文

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

我正在编写一些测试来尝试一下:

  @user = User.new(:first_name => "Ken", :email => '[email protected]', :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”时,它没有被设置。密码和电子邮件已设置,但名字尚未设置。

有谁知道为什么?我玩过一些 Rails,它也适用于其他模型。为什么不使用设计呢?

I used devise to create a user model. It contains all the default stuff from devise as well as 2 more database columns: first_name and last_name. Pretty simple stuff.

I am coding some tests to try it out:

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

In my model, I have this:

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

For some reason, "first_name" is not getting set when I pass it in the constructor. The password and email are getting set, but not first_name.

Does anyone know why? I have played a bit with rails, and it works in other models. Why not with devise?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盗心人 2024-11-11 06:16:36

在您的 User 模型中,写下以下内容:

attr_accessible :first_name, :last_name

然后您就可以开始了。

In your User model, write this:

attr_accessible :first_name, :last_name

and you are good to go.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文