概要
編集ページで追加可能なフォームを削除しても、データが残るといった現象が起きています。
さらに新しいデータを更新すると、前のデータと新しいデータの両方が残ってしまい、編集機能としての役割が果たしていません。
roadテーブルの中に、repetitionテーブルがあります。
roadのカラムが増殖することはありません。repetitionのカラムのみ、増殖?していると現状です。
「前回の分は更新しないように設定できれば解決するのでは?」と考えましたが、やり方がわかりません…困りました……
関係ありそうなコード
show
1~ 2<%# フォーム(repetitions)繰り返し %> 3 <h2>学習詳細</h2> 4<% @rooad.repetitions.each do |rooad|%> 5 <p>学習内容: <%= rooad.name %></p> 6 <p>学習期間: <%= rooad.period %>日</p> 7 <% if rooad.memo.present? %> 8 <p>一言メモ: <%= rooad.memo %></p> 9 <% end %> 10<% end %> 11~
edit
1<div class="rooad-post"> 2 <%= form_with(model: @rooad, local: true) do |f| %> 3<%= render 'shared/error_messages', model:@rooad %> 4<%# roadカラムの内容 %> 5 <div class="field"> 6 <%= f.label "タイトル" %><br /> 7 <%= f.text_field :title, placeholder: "例)エンジニア転職までの道のり" %> 8 </div> 9 <div class="field"> 10 <%= f.label "学習状況" %><br /> 11 <%= f.collection_select(:status_id, Status.all, :id, :name, {}, {class:"status-select"}) %> 12 </div> 13 14<%# /roadカラムの内容 %> 15 16<%# フォームの内容 %> 17 <div class="repetition"> 18 <div class="mx-auto"> 19 <%= f.fields_for :repetitions do |t| %> 20 <%= render "rooads/repetition_fields", f: t %> 21 <% end %> 22 </div> 23 24 <div id="detail-association-insertion-point"></div> 25 26 <div class="col-10 mx-auto mt-2"> 27 <%= link_to_add_association "+フォームを追加", f, :repetitions, 28 class: "btn btn-secondary btn-block", 29 data: { 30 association_insertion_node: '#detail-association-insertion-point', 31 association_insertion_method: 'after' 32 }%> 33 </div> 34 </div> 35<%# フォームの内容 %> 36 37<%# roadカラムの内容 %> 38<div class="field"> 39 <%= f.label "詳細(1,000文字以内)" %><br /> 40 <%= f.text_area :detail, placeholder: "例)1日平均8時間の学習をしました" %> 41 </div> 42<%# roadカラムの内容 %> 43 44<div class="sell-btn-contents"> 45 <%= f.submit "更新する" %> 46 <%=link_to 'もどる', rooads_path %> 47 </div> 48 <% end %> 49</div>
repetition
1<div class="nested-fields"> 2 <div class="row mx-auto"> 3 4 <div class="col-5"> 5 <%= f.label "学習内容(30文字まで)",class:"ko" %> 6 <%= f.text_field :name, class: "form-control", placeholder: "例)Progate/HTML&CSS" %> 7 </div> 8 9 <div class="col-5"> 10 <%= f.label "学習期間(半角数字・100日以内)",class:"ko" %> 11 <%= f.text_field :period, class: "form-control", placeholder: "例)12" %> 12 </div> 13 14 <div class="col-5"> 15 <%= f.label "一言メモ(30文字まで)",class:"ko" %> 16 <%= f.text_field :memo, class: "form-control", placeholder: "例)教材費1ヶ月1,000円" %> 17 </div> 18 19 <div class="offset-1 col-1 px-0 w-auto"> 20 <%= link_to_remove_association "削除", f, class: "btn btn-secondary btn-block" %> 21 </div> 22 23 </div> 24</div>
関係ないとは思いますが、フォームの内容も記載しておきます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/20 09:45
2021/09/20 09:51
2021/09/20 09:56