私は、ユーザーがゴール、それらのゴールのマイルストーン、マイルストーンのタスク、ゴール自体のタスクを保存できるアプリケーションを作ろうとしています。私はポリモーフィックな関連付けを使用していますが、それらのすべてを入力するフォームを作成することは困難であることが証明されています。問題は、マイルストーンがまったく節約されていないことと、マイルストーンタスクが「マイルストーン」タイプではなく「ゴール」タイプのデータベースとしてリストされていることです。モデルとデータベースはthe top answer for this questionのように設定されています。 私は誰かが私のform_forの実装を見て、それが正しいかどうか、または問題がどこかにあるかどうかを見てみることを望んでいます。あなたが他のコードを見る必要があるかどうかを教えてください。ネストされた属性がポリモーフィックな関連付けを持つフォームに保存されない
<%= nested_form_for @goal do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= render 'shared/goal_fields', :f => f %>
<%= f.fields_for :milestones do |ff| %>
<%= render 'shared/milestone_fields', :f => ff %>
<% end %>
<%= f.fields_for :tasks do |ff| %>
<%= render 'shared/task_fields', :f => ff %>
<% end %>
<%= f.link_to_add "Add Milestone", :milestones %>
<%= f.link_to_add "Add Task", :tasks %>
<%= f.submit %>
<% end %>
あなただけ'@goal.milestonesを使用したいと思います.build'を新しいアクションに追加し、「空の」マイルストーンフォームが必要な場合は、このコードはコントローラーのほうが優れています。 –
私は修正した質量割り当て問題を持っていました。また、@ goal.milestones.buildと@ goal.tasks.buildをフォームに追加しました。その後、私はすべてを保存することができましたが、フォームを編集しようとすると、目標データは表示されません(新しいフォームのように見えます)。私は、これがいかに困難になっているかという理由だけで何か間違っている気がします。 –