如何在Rails表单关联列表中设置默认选项?

时间:2012-08-10 01:43:40

标签: ruby-on-rails forms rails-activerecord

我有两个模型类:目标和目标。目标有许多目标,目标属于一个目标。

我创建了一个页面,用于通过表单创建新目标。在页面的控制器中,我设置变量@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 %>

怎么做?

1 个答案:

答案 0 :(得分:0)

啊,答案非常明显。它应该在控制器中的记录本身上完成,而不是在视图表单中设置默认值。例如:

@objective = Objective.new

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

这将自动将其选为视图表单关联列表中的默认选项。