【问题标题】:Ruby on rails form validation for user profiles advice neededRuby on rails 表单验证用户配置文件需要的建议
【发布时间】:2012-01-14 20:48:31
【问题描述】:

我有一个模型包含我的 edit_profiles 页面的验证规则。在编辑个人资料页面上,我使用 jquery 手风琴将用户 edit_profile 拆分为不同的部分,以便用户编辑信息。每个部分都是一个单独的表格。

例如

基本信息(表格 1) 个人数据(表 2) 最喜欢的东西(表3) 关于我(表 4)

我的问题是在一个表单上成功填写信息,然后单击更新不成功,因为已设置的其他验证规则正在触发,因为其他表单未通过验证,因为它们尚未填写。

我尝试使用 validation_group gem,但这似乎没有任何影响。 我想知道是否有一种简单的方法可以做到这一点?

我不能只为每个表单收集验证规则并将它们放在单独的方法中,并且仅在单击匹配表单的更新按钮时才使它们发挥作用吗?

因此,如果单击表单 1 上的更新按钮,例如 form_one_validations 方法将被触发,而无关的验证方法则不会。

我真的很感激一个如何做到这一点的例子。

这是负责 y edit_profile 视图的操作:

  def edit_profile

  @profile = Profile.find_by_user_id(current_user.id)

  end

它基于我的配置文件控制器。

亲切的问候

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rubygems


    【解决方案1】:

    我最终使用了 :allow_blank 这样就不必填写这些字段,但所有其他重要的验证规则仍会在需要时强制执行。

    【讨论】:

      【解决方案2】:

      我可以向您建议这样的方法:您可以在模型中添加其他字段,例如“basic_info_completed”,它将在用户填写所有相应信息后设置一次。并使所有必要的验证有条件并仅在此类字段设置为 true 时执行它们。因此,在用户填写配置文件部分的所有字段之前,它们都可以在没有验证的情况下进行编辑,但是在配置文件字段完成后,会为配置文件的该部分打开验证。

      【讨论】:

      • 我想一直保护数据库。这是否意味着我的数据库更容易受到没有任何形式的验证保护的攻击?
      • 在这种情况下,我假设字段只有两种状态:组的所有字段都为空(null),组的所有字段都设置(有效)。
      猜你喜欢
      • 2012-11-12
      • 1970-01-01
      • 2019-04-08
      • 2016-04-20
      • 2016-12-15
      • 2010-12-23
      • 1970-01-01
      • 2019-02-08
      • 2014-12-25
      相关资源
      最近更新 更多