如何以轨道形式处理多个模型

use*_*748 19 forms ruby-on-rails

http://weblog.rubyonrails.org/2009/1/26/nested-model-forms

这篇文章有助于学习如何以轨道形式处理多个模型.只要模型嵌套,它就可以工作.如果他们不是?比方说,我有一个表单,用户填写个人详细信息,地址详细信息和一系列复选框,指明她的兴趣.这个单一表单中至少涉及3个表,处理此问题的最佳方法是什么,没有3个不同的保存按钮?

Bri*_*gan 25

两种选择:

首先是ActivePresenter,它适用于此.

第二是使用fields_for:

<%= form_for @user do |f| %>

   <%=f.label :name %>
   <%=f.text_field :name %>

   <%= fields_for @address do |fa| %>
      <%=fa.label :city %>
      <%=fa.text_field :city %>
   <% end %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

然后在控制器中保存记录.

 @user = User.new(params[:user]) 
 @address = Address.new(params[:address])
Run Code Online (Sandbox Code Playgroud)

虽然ActivePresenter工作得很好.

还通过Google 找到了一个railsforum帖子,效果很好.