###前提・実現したいこと
ここに質問したいことを詳細に書いてください
Ruby on Railsを使っていて、nested_formにデフォルトの値を渡そうとしているのですが
タイトルにあるエラーが出ており、解決策がわからない状態です。
###発生している問題・エラーメッセージ
undefined method `to_key' for #OrderExportFormatDetail::ActiveRecord_Associations_CollectionProxy:0x007fdbb81d7f90
エラーメッセージ
###該当のソースコード
def new
@order_export_format = @shop.order_export_formats.new
@order_export_format = OrderExportFormat.set_default_options(@order_export_format)
end
class OrderExportFormat
def set_default_options(order_export_format)
order_export_format.order_export_format_details.new(column_number: 1) order_export_format.order_export_format_details.new(column_number: 2) order_export_format.order_export_format_details.new(column_number: 3) order_export_format.order_export_format_details end
end
new.html.erb
<div id="order_export_form"> <%= render partial: 'form', locals: {order_export_format: @order_export_format} %> </div>_form.html.erb
iv class="widget-body">
<%= nested_form_for [@shop,@order_export_format], html: {class: "form-horizontal"} do |f| %>
<fieldset>
<div>
<div class="table-responsive">
<table class="table table-bordered index">
<thead>
<tr>
<td></td>
</tr>
</thead>
<tbody id="order-export-format-details-field">
<%= f.fields_for :order_export_format_details, wrapper: false %>
</tbody>
</table>
</div>
<div style="margin-bottom:20px; text-align: right">
<%= f.link_to_add raw("<i class="fa fa-plus"></i> 列追加"), :order_export_format_details, class: "btn btn-success btn-lg", data: { target: "#order-export-format-details-field" } %>
</div>
</div>
</fieldset>
<div class="form-actions">
<div class="row">
<div class="col-md-9 col-md-offset-2">
<%= f.submit class: "btn btn-primary btn-lg" %>
</div>
</div>
</div>
<% end %>
_order_export_detail_fields.html.erb
<tr class="fields"> <td class="text-center"> <%= f.link_to_remove raw('<i class="fa fa-remove text-danger"></i>') %> </td> <td class="text-center"> <%= f.hidden_field :column_number %> <%= f.number_field :column_number, min: 0, class: "form-control" %> </td> <td> <%= f.select :order_export_format_column_id, OrderExportFormatColumn.all.select{ |g| g.file_format_kind.include?(@order_export_format.file_format_kind.code.to_sym)}.map{ |i| [i.name, i.id] }, {include_blank: true}, class: "select2", style: "width: 100%" %> </td> <td> <%= f.hidden_field :format_column_name %> <%= f.text_field :format_column_name %> </td> </tr>###試したこと
nested_formに値を渡す方法は他にあるのでしょうか?
素人故、詳細等抜けているかと思いますが、何かアドバイス頂けると幸いです。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報アドバイス
あなたの回答
tips
プレビュー