[英]Validation issues in Rails
我正在使用Rails 3.2.16,devise和mongoid(可能与此问题相关的Gems)。
用户注册后,我已经设计了重定向他们的方式,以创建一个新的配置文件,该配置文件名为belongs_to :user
。 我正在使用以下设计替代来执行此操作:
def after_sign_up_path_for(resource)
new_profile_path
end
在个人资料上,我在各个地方调用验证,例如validates :biz_name, :on => :update, :presence => {:message => 'Business name cannot be blank'}
。
在用户注册后加载new_profile_path
时,他们会立即在我称为“验证”的字段上收到验证错误。 起初我很困惑,因为按照上面的代码,我仅在update
调用验证。 因此,为什么运行验证没有意义。
无论如何,我找到了我的错误。 我的个人资料模型中有一些字段具有默认值,例如field :position_order, :type => Integer, :default => 1
。 似乎首先使用这些默认值创建了配置文件,然后显示给用户进行编辑时,实际上是调用了update
方法-因此,调用了验证错误。
我该如何解决? 归根结底,我想要两件事:
-在用户能够编辑其个人资料之前,使用一些默认值填充个人资料
-在配置文件编辑页面的第一个视图上,不应运行验证(因此,用户甚至没有做任何事情都不会看到一堆错误)。
嗯,我想你应该重新考虑一下要求。 哪些用途的默认值无效?
您还可以提供前端行为,以指导用户更正HTML或Javascript的输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.