在选择的选项中取消浏览HTML
我有一个select标签,用于通过URL更改过滤器。在更改时,我重新加载页面以相应地更新结果。新选择的过滤器应明显显示为已选择。但这是行不通的在选择的选项中取消浏览HTML,html,ruby-on-rails,Html,Ruby On Rails,我有一个select标签,用于通过URL更改过滤器。在更改时,我重新加载页面以相应地更新结果。新选择的过滤器应明显显示为已选择。但这是行不通的 <%= select_tag("filter_rating" , (:selected =>) options_for_select(rating_filter_options, (request.env['PATH_INFO']))) %> 无法选择当前筛选器的原因是请求.env['PATH\u INFO']返回/rating>=1
<%= select_tag("filter_rating" , (:selected =>) options_for_select(rating_filter_options, (request.env['PATH_INFO']))) %>
无法选择当前筛选器的原因是请求.env['PATH\u INFO']
返回/rating>=1
,这与/rating%3E=5
不同。因此,解决办法是取消这种讨厌的%3E
我尝试在选择标记上使用CGI.unescape
、h
、html\u-safe
,但到目前为止,我的尝试都失败了
有什么想法吗
更新:
我更改了生成rating\u filter\u选项的助手
,并正确放置了CGI.unescape
,因此它现在返回:
# [["by my rating", "/all"], ["1+", "/rating>=1"], ... , ["5", "/rating>=5"]]
另外,我对request.env['PATH\u INFO']
使用CGI.unescape
,以确保它是相同的。logs&HTML中的结果现在确认它是正确的但是所选过滤器仍然没有被选中…CGI
应该可以工作
irb(main):112:0> CGI.unescape("/rating%3E=1")
=> "/rating>=1"
options\u for\u select(分级过滤选项,@selected=request.env['PATH\u INFO'])
Ok这太愚蠢了:更新中描述的CGI
有效,但我在垃圾箱中更改了一个文件,却没有意识到。。。所以这些改变并不适用。。。不管是谁,谢谢你的帮助^^
irb(main):112:0> CGI.unescape("/rating%3E=1")
=> "/rating>=1"