简单表单'selected'属性未正确设置

问题描述 投票:0回答:2

我有一个简单的模型表单设置。虽然它不能正常工作。

<%= f.input :folder, collection: current_user.folders, label_method: :name, value_method: :slug, selected: params[:folder] %>

我通过参数设置输入的selected属性。因此,如果url像这样结束:?folder=First+Folder,我希望输入搜索上面代码中的集合集(即current_user.folders)并将其设置为选中。它有点工作但不是真的。

假设select标签中的选项是这样的

  • 第一个文件夹
  • 第二个文件夹
  • 第三个文件夹

无论params [:folder]的值是什么,select标签将始终选择第一个选项。在这种情况下:“第一个文件夹”。如果将params[:folder]设置为“Second Folder”或“Third Folder”,则无关紧要。它将始终设置为“First Folder”或select标签中的第一个选项。

有什么建议?

ruby-on-rails simple-form
2个回答
0
投票
  1. 选项而不是“已选择”put“value:params [:folder]”
  2. 我认为一个更优雅的解决方案是在控制器中让我们说你有模型“文件”。因为可以更改值并且选择的值将具有错误值
def new
  @file = File.new
  @file.folder = params[:folder]
end

0
投票

解决了它。我需要将slug传递给选定的属性,而不是名称。如果你正在实现这个,你可能使用id而不是slug。无论如何,这对我有用。

<%= f.input :folder, 
  collection: current_user.folders, 
  label_method: :name, 
  value_method: :slug,
  selected: @folder.slug
%>
© www.soinside.com 2019 - 2024. All rights reserved.