私の 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 番目のネストされたモデルがあり、関連付けられたモデルがない場合も同じ問題が発生します。)
私が見逃していることは明らかですが、指針や提案は大歓迎です。