我有一个表单选择默认情况下,我需要选择一个“主”根文件夹,但如果它们存在于所选选项中,我还需要它使用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
答案 0 :(得分:1)
是
<%= f.select :folder_id, options_for_select(@folders, params[:contact][:folder_id].to_i || @folders.assoc('MAIN').last.to_i) %>