繁体   English   中英

Rails中的验证问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM