似乎應該有一種超級快速的Railsy方式來做到這一點,但過多的Google使用什麼方法都無濟於事。在Rails 2.3.x中以一種形式更新多個表格
好的。我需要從一個表格更新三個表格。等式的視圖部分有詳細記錄(form_for,fields_for)。但我不確定如何處理髮送到父控制器中更新操作的表單參數。注意:這三個表都有一個定義好的Rails關聯。
查看:賬戶控制器
<% form_for @account do |a| %>
<table>
<tr class="odd">
<td>
<%= a.label :plan_id %>
</td>
<td>
<%= a.text_field :plan_id %>
</td>
</tr>
<tr class="even">
<td>
<%= a.label :company %>
</td>
<td>
<%= a.text_field :company %>
</td>
</tr>
<% fields_for @user do |u| %>
<tr class="odd">
<td>
<%= u.label :first_name %>
</td>
<td>
<%= u.text_field :fname %>
</td>
</tr>
<tr class="even">
<td>
<%= u.label :last_name %>
</td>
<td>
<%= u.text_field :lname %>
</td>
</tr>
<tr class="odd">
<td>
<%= u.label :email %>
</td>
<td>
<%= u.text_field :email %>
</td>
</tr>
<tr class="even">
<td>
<%= u.label :phone %>
</td>
<td>
<%= u.text_field :phone %>
</td>
</tr>
<tr class="odd">
<td>
<%= u.label :title %>
</td>
<td>
<%= u.text_field :title %>
</td>
</tr>
<% end %>
<% fields_for @site do |s| %>
<tr class="even">
<td>
<%= s.label :domain %>
</td>
<td>
<%= s.text_field :domain_name %>
</td>
</tr>
<tr class="odd">
<td>
<%= s.label :url %>
</td>
<td>
<%= s.text_field :url %>
</td>
</tr>
<% end %>
<tr>
<td colspan="2">
<%= a.submit :submit %>
</td>
</tr>
</table>
<% end %>
更新動作(這不工作):
account = params[:account]
user = account
site = account
account.save!
user.save!
site.save!
如何處理被髮布到更新行動PARAMS?從一個表單創建三個表中的新記錄似乎很簡單,但我不知道如何從同一個表單更新這三個表。