所以,我正在使用form_tag在显示项目的网站上创建自己的搜索工具。
我有一个collection_select,列出了项目的位置。我最初使用prompt: 'n/a'
来显示' n / a'没有添加' n / a'进入位置列表,然后尝试使用select: params[:search][:location]
在提交后将选择保留在列表中。基本上我可以让他们中的一个一次工作。从来没有。我在下面写了一个解决方法:
<%= collection_select(:search, :location, Item::LOCATIONS, :to_s, :titleize, prompt: (@location ? params[:search][:location] : 'n/a')) %>
这很有效,但感觉不对。我显然在控制器中创建了一个名为@location
的变量,用于何时存在params,然后将逻辑添加到collection_select标签中。
任何更清洁的解决方案都将受到赞赏。我是Rails(和编码!)的新手,所以试图学习最佳实践。