0

目標と目的の2つのモデルクラスがあります。目標には多くの目標があり、目標は1つの目標に属します。

フォームを介して新しい目的を作成するためのページを作成しました。@default_goalページのコントローラーで、次のような変数の値を設定しています。

@objective = Objective.new

if params.has_key?(:default_goal)
    @default_goal = Goal.find(params[:default_goal])
end

次に、私のフォームで、その変数を関連付けドロップダウンリストのデフォルトの目標にします。次のことを試しましたが、うまくいかないようです。

<%= simple_form_for @objective do |f| %>
    <%= f.association :goal, :prompt => "Select a goal", :default => @default_goal %>
<% end %>

どのようにそれを行うことができますか?

4

1 に答える 1

0

ああ、答えは本当に明白でした。ビューフォームでデフォルトを設定する代わりに、コントローラーのレコード自体で行う必要があります。例:

@objective = Objective.new

if params.has_key?(:default_goal)
    @objective.goal = Goal.find(params[:default_goal])
end

これにより、ビューフォームの関連付けリストのデフォルトオプションとして自動的に選択されます。

于 2012-08-10T01:59:15.650 に答える