【发布时间】:2011-07-31 03:43:06
【问题描述】:
我有一个允许更新用户记录的表单。它包含用于 :password 和 :password_confirmation 的字段,但如果加密密码已存储在数据库中,我确实不希望在它们上运行验证。
视图文件中的字段:
<%= f.password_field :password %>
<%= f.password_field :password_confirmation, :label => 'Confirm Password' %>
在互联网上搜索时,我发现了这段代码,我认为这是针对以前版本的 Ruby/Rails 的。 (我会放在我的用户模型中。)
validates_presence_of :password, :on => create
由于我的用户模型中的密码验证语法不同(如下),我对我需要的语法感到困惑。
validates :password, :presence => true, :confirmation => true
我已经搜索了其他帖子,并且肯定可以使用一些方向。
-- 免责声明 -- 我确实看到有关于条件验证的屏幕截图,但我目前无法观看。
谢谢大家。
编辑 - 插入以下代码,它确实允许更新用户记录,而不会抱怨密码字段丢失。
validates :password, :presence => true, :confirmation => true, :on => :create
【问题讨论】:
-
当然,我一发布问题就(有点)解决了这个问题。但是,我认为我的解决方案(我在问题底部添加的)不是一个正确的解决方法,将来我开始更改密码时会遇到问题。
-
但是如果有更新怎么处理。就像您正在执行重置密码或更改密码之类的操作?
-
@KevinHorvath -- 您的问题超出了本主题的范围。你的搜索把你带到这里了吗?
标签: ruby-on-rails ruby validation conditional