选择标记 - 使用逻辑指定所选值

时间:2011-01-31 22:44:37

标签: ruby-on-rails

我有一个表单选择默认情况下,我需要选择一个“主”根文件夹,但如果它们存在于所选选项中,我还需要它使用params。我已经看过使用params作为选择的例子,除非它们是零。但是,如果param是nil,我还没有看到使用另一个值的例子(除非它是空白的,否则使用它,在这种情况下 - 使用另一个)。

查看

 <%= f.select :folder_id,  options_for_select(@folders, @folder_to_select )  %>

控制器:

if  !params[:contact][:folder_id].nil?
   @folder_to_select = params[:contact][:folder_id].to_i
else
   @folder_to_select = @folders.assoc('MAIN').last.to_i
end   

我可以在Select中找到控制器逻辑功能吗?

谢谢!

编辑:

我错过了,但我的originall控制器代码实际上没有用。在检查[:contact] [:folder_id]是否为nil之前,我必须检查[:contact]参数是否为nil(如果顶级[:contact]不存在则避免nil错误。

if !params[:contact].nil?
  if !params[:contact][:folder_id].nil?
     @folder_to_select = params[:card][:folder_id].to_i
  else
     @folder_to_select = @folders.assoc('MAIN').last.to_i
  end
end

1 个答案:

答案 0 :(得分:1)

<%= f.select :folder_id,  options_for_select(@folders, params[:contact][:folder_id].to_i || @folders.assoc('MAIN').last.to_i)  %>