こんばんわ。現在1:nで組んだn側のアソシエーションにedit機能を付けたいです。
色々試してみみて、editにアクセスする事までは出来たのですが、元のformの内容がedit引き継がれません。そのまま登録するとupdateではなくcreateされ、新たにeachが追加されてしまう状態です。
ご教示よろしくお願い致します。
companiesshow
1 <table class="company"> 2 <tbody> 3 <% if @company.blocks.any? %> 4 <% @company.blocks.each do |block| %> 5 <tr> 6 <td><%= block.name %></td> 7 <td><%= block.progress %></td> 8 <td><%= block.start %></td> 9 <td><%= block.supply %></td> 10 <td><%= block.comment %></td> 11 <td><%= link_to '編集', edit_mypage_company_block_path(@company, block), class: :"btn btn-primary"%> 12 <%= link_to '削除', 13 mypage_company_block_path(company_id: @company.id, id: block.id), 14 method: :delete, 15 class: :"btn btn-primary", 16 data: { confirm: '本当に削除しますか?'} %></td> 17 <% end %> 18 <% end %> 19 </tr> 20 <%= form_for ([:mypage, @company, @company.blocks.build]) do |f| %> 21 <tr> 22 <td><%= f.select(:name, [ 23 ["トライアル"], 24 ]) %></td> 25 <td><%= f.select(:progress, [ 26 ["1.申込フォーム到着","1.申込フォーム到着"] 27 ]) %></td> 28 <td><%= f.date_field :start %></td> 29 <td><%= f.date_field :supply %></td> 30 <td width="30%" colspan="2"><%= f.text_field :comment %></td> 31 </tr> 32 <tr> 33 <td colspan ="7"><%= f.submit '登録' %></td> 34 </tr> 35 </tbody> 36 </table> 37 <% end %>
blocksedit
1 2<table class="company"> 3 <tbody> 4 5<%= form_for ([:mypage, @company, @company.blocks.build]) do |f| %> 6 <tr> 7 <td><%= f.select(:name, [ 8 ["一般トライアルコース"] 9 ]) %></td> 10 <td><%= f.select(:progress, [ 11 ["1.申込フォーム到着","1.申込フォーム到着"], 12 ]) %></td> 13 <td><%= f.date_field :start %></td> 14 <td><%= f.date_field :supply %></td> 15 </tr> 16 <tr> 17 <th colspan="4">コメント</th> 18 </tr> 19 <tr> 20 <td colspan="4"><%= f.text_area :comment %></td> 21 </tr> 22 <tr> 23 <td colspan ="7"><%= f.submit '登録' %></td> 24 </tr> 25</tbody> 26</table> 27<% end %> 28
blockscontroller
1class Mypage::BlocksController < Mypage::BaseController 2 #before_action :load_company 3# before_action :load_block, only: [:edit,:update,:show,:destroy] 4 5 # def load_company 6 # @company = Company.find(params[:company_id]) 7 # end 8 9 # def load_block 10 # @block = Block.find(params[:id]) 11 # end 12 13 def create 14 @block = Block.build 15 #@company = Company.find(params[:company_id]) 16 if @company.blocks.create(block_params) 17 redirect_to mypage_company_path(@company) 18 end 19 end 20 21 def edit 22 @company = Company.find(params[:company_id]) 23 #@block = Block.find(params[:id]) 24 end 25 26 def update 27 @block = Block.find(params[:id]) 28 #@block = @company.blocks.find(params[:id]) 29 if @block.update(block_params) 30 redirect_to mypage_company_path(@company) 31 else 32 render 'edit' 33 end 34 end 35 36 def destroy 37 @company = Company.find(params[:company_id]) 38 @block = @company.blocks.find(params[:id]) 39 @block.destroy 40 redirect_to mypage_company_path(@company) 41 end 42 43 private 44 def block_params 45 params.require(:block).permit( 46 :name, 47 :system, 48 :progress, 49 :start, 50 :supply, 51 :comment 52 ) 53 end 54 55 end 56
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/07 09:29
2019/07/07 09:49
2019/07/07 09:56
2019/07/07 10:16