【发布时间】:2014-04-15 05:46:38
【问题描述】:
我是 Rails 的新手,我遇到了这个问题:我有一个名为 User 的模型
class User < ActiveRecord::Base
attr_accessor :password
EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
validates :first_name, :presence => true,:format => /\A[a-zA-Z]+\z/
validates :last_name, :presence => true,:format => /\A[a-zA-Z]+\z/
validates :email, :presence => true, :uniqueness => true, :format => EMAIL_REGEX
validates :password, :presence => true
validates_length_of :password, :in => 6..20, :on => :create
end
具有数据库属性first_name、last_name、email、hashed_password 和encrypted_password。
当我创建新的用户对象并将其保存在数据库中时,没有问题。现在,这是我想编辑我的用户对象属性的问题,除了电子邮件和密码。
一旦我尝试通过编辑 rails 资源来编辑记录,它会标记一个错误,即密码不应为空。如果用户想编辑他/她的信息,我计划豁免验证,但我知道这不是一个好习惯。
希望能找到最佳答案。
【问题讨论】:
-
@Sabyasachi Ghosh,设计的哪一部分是错误的?我认为这是一对一的关系..
-
您应该使用密码和确认密码等字段,然后生成密码部分。否则,您需要在每个地方提供 on: create 选项。
标签: ruby-on-rails ruby ruby-on-rails-3 validation ruby-on-rails-4