[英]How to create one form from multiple unassociated (Not Nested) models in Rails 4?
我在Postgres中使用Rails 4。 每個模型都有一個輸入表單,用戶可以在其中輸入參數。 這些參數然后用於搜索表。 每個模型都有其自己的參數,這些參數與其他模型無關,並擁有要搜索的表。 然后,所有模型都從各自的表中返回一個值。 這些模型及其相關的表格可以單獨工作(我在模型1中輸入參數,然后在表中搜索模型1並返回答案)。
我正在嘗試創建一系列頁面,以允許我組合模型。 例如,我想要用戶可以在所有3種模型中輸入信息的頁面,僅具有3種模型中的2種的頁面,或者甚至具有兩種具有相同模型而第三種不同模型的頁面。 做這個的最好方式是什么?
我嘗試過nested_attributes,但由於我沒有關聯,因此不確定是否適用。 我是否缺少該功能允許它在此用例中正常工作的功能? 謝謝!
這是一個包含幾個模型但不嵌套的表單的人為設計示例:
<%= form_tag(controller: "foo", action: "bar", method: :post) do %>
<%= fields_for(:subscriber, @user) do |sub_fields| %>
<div class="row">
<%= sub_fields.label :email %>
<%= sub_fields.text_field :email %>
</div>
<% end %>
<%= fields_for(@cat) do |cat_fields| %>
<div class="row">
<%= sub_fields.label :name %>
<%= cat_fields.text_field :name %>
</div>
<% end %>
<% end %>
讓我們從頂部開始:
form_tag
而不是form_for
因為我們只想要一種不與資源綁定的表單。 fields_for
讓我們將輸入綁定到任何任意資源。 產生的參數將是這樣的:
{
subscriber: {
email: 'john.doe@example.com'
},
cat: {
name: 'Nisse'
}
}
也可以看看:
看一下fields_for包裝器。
http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.