Rails collection_select:使用带有逻辑的'prompt' - 有更好的方法吗?

时间:2015-01-15 13:42:39

标签: ruby-on-rails ruby forms ruby-on-rails-4

所以,我正在使用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(和编码!)的新手,所以试图学习最佳实践。

0 个答案:

没有答案