1

モデル用に選択されたレコードに基づいて選択するフォームの選択フィールドを作成しようとしています (「Cancellation_Reasons」と呼ばれます)。

キャンセルと呼ばれる私のモデルでは:

<%= form_for(@cancellation do |f| %>
    <%= options_from_collection_for_select(@cancellation_reasons, :id, :name) %>
<% end %>

Cancellation_Controller で:

def new
  @cancellation = Cancellation.new
  @cancellation_reasons = CancellationReason.find(1)    

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @trade }
  end
end

Rails コンソールで実行するCancellationReason.find(1)と、レコードが見つかるため、@cancellation_reasons は nil ではありません。おそらく select ヘルパーの使用方法にあると思います (実験してみましたが、Rails Guide とRails API docsを読んでもどれを使用すればよいかわかりません)。

4

1 に答える 1

0

options_from_collection_for_selectはコレクションを期待します(それが1のコレクションであっても)。したがって、コードを次のように変更します。

def new
  @cancellation = Cancellation.new
  @cancellation_reasons = CancellationReason.all

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @trade }
  end
end
于 2012-09-02T02:33:58.573 に答える