Rails在一个模型中进行4种不同的验证

时间:2014-12-02 08:38:34

标签: validation ruby-on-rails-4 activerecord

我有2个标签(表格)的页面,用于编辑一个对象。

E.g。用户的信息。在第一个标签中有个人信息,在下一个标签中有结算信息。

每个表单都有自己的提交按钮。我如何分别验证字段。如果我理解正确,当我尝试提交包含4个字段(10个)的表单时,它会引发错误,其他字段(6个中的10个)会出错。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

创建2个类以反映您的UI:

class User
  has_one :user_info
  has_one :billing_info
end

class UserInfo
  belongs_to :user

  # add your validation
end

class BillingInto
  belongs_to :user

  # add your validation
end

在您的控制器中:

def edit
  @user = User.find(params[:id])
  @user_info = @user.build_user_info
  @billing_info = @user.build_billing_info
end

然后在你的观点中:

= form_for @user_info do |f|
= form_for @billing_info do |f|

您需要2个控制器来处理POST个请求。应分别命名为UserInfosControllerUserBillingInfosController