私のレールアプリケーションでは、Kid
モデルとAllergy
モデルがあり、Kid
has_manyのモデルがあります。また、kid
を作成するときにフィールドがkid
フォームになるようにネストされたフォームを作成しました。これは私が私のkid
コントローラに持っているものです。ネストされたフォームのフィールドが空でない場合は、レコードは保存されません
def new
@kid = Kid.new
allergy = @kid.allergies.build
end
、これが私のkid
フォームを作成するにネストされた私のindex.html.erbである:
<%= f.fields_for :allergies, Allergy.new do |u| %>
<%= u.label :description, "Description", class: "control-label" %>
<%= u.text_field :description, class: "input-sm form-control" %>
<%= u.label :symptoms, "Symptoms", class: "control-label", %>
<%= u.text_field :symptoms, class: "input-sm form-control" %>
<%end%>
これはほんの一allergy
レコードを挿入するため正常に動作しますAllergy
モデルに入力することができますが、kid
が可変量のallergies
を持つ可能性があるため、最大5個のallergy
個の入力をリストし、ユーザーが入力するものだけを挿入することができます。
私はこの記事を使用:http://vicfriedman.github.io/blog/2015/07/18/create-multiple-objects-from-single-form-in-rails/
しかし、私は、ネストされたフォームにこの作業を行うことができませんでした。すべての助けがありがとう、ありがとう!その後、データベース内の任意の空の関係を保存拒否すること
def new
@kid = Kid.new
5.times do
@kid.allergies.build
end
end
:あなたは、フォームに表示する関連アイテムの数、のようなものを構築する必要がありますあなたの関係のために複数のネストされたフォームを取得するための
':reject_if'を試しましたか? http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html –