我对$( ".box" ).click(function() {
copy = $(this).clone();
copy.addClass("box-active");
// save .box position + size
// maximize div
}
$( ".box-active" ).click(function() {
// minimize div to saved .box position + size
$(this).remove();
}
进行了验证:
user
这很明显。当我创建(注册)新的 validates :password,
presence: true,
confirmation: true,
length: { minimum: 6 },
:on => :create
时,我想填写他们的密码,这就是为什么user
。
案例1)当用户想要更新其帐户(假设更改其用户名)时,该表单只包含presence: true
和email
字段。没关系,验证还可以。
案例2)他忘记了密码,并将他的“忘记密码链接”发送给他,并且他正在创建新密码的页面上。表单包含以下两个字段:密码和密码确认。但是,他将这两个字段留空并提交表单。验证通过,因为它只是username
!因为案例1)
我无法添加:on => create
,因为案例1)无法通过,因为没有密码字段。
在这种情况下我该怎么办?什么是最佳实践或这个“问题”的真正解决方案是什么?
答案 0 :(得分:2)
我为这种情况所做的不是使用on: :create
,而是使用我在设置/更改密码时设置的虚拟属性。像这样:
validates :password, if: :changing_password?
attr_accessor :password_scenario
def changing_password?
self.password_scenario.present?
end
然后在您的控制器中,只要您需要密码,就可以将password_scenario设置为true。