在我的应用程序中,我有两种用于创建用户的表单 表格1:我以表格1从用户输入以下详细信息。
在表格2中,我请他填写他的
问题是我以下列方式关联了我的模型,
User has_one UserProfile
UserProfile belongs_to User
&安培;
电子邮件地址,用户名和密码是用户模型的属性 其余属性属于UserProfile模型。
但在我的表单中,我使用Form1中的电子邮件地址和Form2中的其他属性。
我应该将表单设为Rails表单还是纯HTML表单? 我该怎么办?
更新: - 我不想在不创建User对象的情况下创建UserProfile对象,因此我需要一些方法将表单1值存储在javascript中,然后在提交表单2时,将它们都传递给Rails控制器方法。
答案 0 :(得分:1)
我不太了解红宝石,但是需要使这个过程复杂化。有一个表格,在视觉上你可以使用两个字段集分隔字段。然后提交表单,并在后端以任何方式保存它们。
答案 1 :(得分:1)
我认为不需要同时创建UserProfile和User,但是如果你必须创建它, 并且您首先必须填写form1,即UserProfile,然后才填写form2,即User,然后您可以创建以下内容。
在form1上首先创建一个User.new并使用User.save,然后你有了新的User.id,并且假设已经使用:user_id的引用创建了一个新的UserProfile,
(请注意,您的验证过程更加困难,因为现在如果您验证:username是null,因此不是唯一的,也不是什么,您可以使User.new默认并调用数据'tempUser'直到完全创建。 )
然后你有user_id来引用,填写UserProfile,保存它,重定向回用户表单,更新它,验证用户输入的数据,并保存它。
你为什么要像这样滚动?
不会只拥有用户并检索数据吗?
或者在此过程中较少验证将首先让用户创建User对象(用户名,密码优先),然后再创建UserProfile对象(电子邮件等)。
有办法绕过所有这些,它只是更复杂:(