在一个表单上验证来自不同模型的属性

时间:2013-09-18 13:47:31

标签: ruby-on-rails

我有两个模型,UserAccount

  • Accounts模型验证名称和组织的存在
  • User模型验证电子邮件和密码的存在

我有一个帐户创建表单,它结合了两个模型:来自Account的帐户名和组织,来自User的电子邮件和密码。

如何在创建帐户时验证两种模式?

1 个答案:

答案 0 :(得分:0)

你可以绝对验证这两个模型,下面的内容应该让你开始,但查找你不认识的任何命令以获得进一步的帮助。

首先链接您的模型并允许嵌套属性和子项的验证:

class User < ActiveRecord::Base
  has_one :account
  accepts_nested_attributes_for :account
  validates_associated :account
end

class Account < ActiveRecord::Base
  belongs_to :user
end

现在使用fields_for帮助程序来定义表单:

<% form_for @user do |form| %>
  <%= form.input :email %>
  <% form.fields_for :account do |account_fields| %>
    <%= account_fields.input :organization %>
  <% end %>
  <%= form.submit %>
<% end %>

当您更新@user的属性时,现在在您的控制器中,帐户属性将自动使用帐户参数更新。然后,当父母被验证时,孩子也将被验证。

相关问题