簡體   English   中英

如何在Rails 4中從多個未關聯(非嵌套)模型創建一種表單?

[英]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'
  }
}

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM