質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

2293閲覧

nested_form_for で ActiveRecord_Associations_CollectionProxy のエラーがでる。 undefined method `to_key'

fired_soldier

総合スコア13

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

2クリップ

投稿2016/10/19 01:02

編集2022/01/12 10:55

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
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 %>

</div>

_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/ツール等のバージョンなど)
より詳細な情報アドバイス

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cameluby

2016/10/19 03:09

viewのコードも追記していただけますか?
fired_soldier

2016/10/19 08:15

返信ありがとうございます。viewを追記いたしました。(インデントが反映されておらず見にくくすみません。。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問