我有一个简单的模型表单设置。虽然它不能正常工作。
<%= 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标签中的第一个选项。
有什么建议?
def new
@file = File.new
@file.folder = params[:folder]
end
解决了它。我需要将slug传递给选定的属性,而不是名称。如果你正在实现这个,你可能使用id
而不是slug
。无论如何,这对我有用。
<%= f.input :folder,
collection: current_user.folders,
label_method: :name,
value_method: :slug,
selected: @folder.slug
%>