私の Rails アプリには、 aClientPageと aの 2 つのモデルがありContentSection、ここでClientPage has_many :content_sections. nested_form両方のモデルに宝石を使用して、同じフォームで編集しています。ClientPageこれは、 に少なくとも 1 つの がある限り正常に機能しますContentSectionが、関連する がない場合ClientSections、usingnested_formのlink_to_addメソッドは次をスローしますNoMethodError。
undefined method `values_at' for nil:NilClass
フォームは次のように構成されています。
<%= nested_form_for page, form_options do |f| %>
# ClientPage fields
# ClientSections
<%= f.link_to_add "Add new section", :content_sections %>
<% end %>
ページに少なくとも 1 つClientSection関連付けられている限り、これは正常に機能します。存在しないとすぐに、エラーがスローされます。を削除link_to_addすると、エラーがスローされなくなります。(実際には の下ContentSectionに 2 番目のネストされたモデルがあり、関連付けられたモデルがない場合も同じ問題が発生します。)
私が見逃していることは明らかですが、指針や提案は大歓迎です。