我正在尝试构建我的第一个Rails应用程序,并且正在使用Ryan Heath's navigation_helper插件在我的导航中为我提供当前的类。我建我的命名路线如下:将字符串标记为HTML安全
match 'games' => 'games#index', :as => :games
match 'new' => 'games#new', :as => :new
match 'previous' => 'games#previous', :as => :previous
match 'settings' => 'settings#index', :as => :settings
然后在我的application_layout添加以下代码
<%= navigation([:games, :new, :previous, :settings]).html_safe %>
据我所知轨html_safe应强制HTML要正确呈现的,而是什么我得到的是这样的:
<ul class="navigation">["<li class=\"current\"><a href=\"/games\">Games</a></li>", "<li class=\"\"><a href=\"/new\">New</a></li>", "<li class=\"\"><a href=\"/previous\">Previous</a></li>", "<li class=\"\"><a href=\"/settings\">Settings</a></li>"]</ul>
所以我做错了什么,或者插件做错了什么?我知道这个插件是在2.x天内写回来的,从我所知的处理HTML的方式来看有点不同,但我只是不够清楚。
使用原始我得到的结果相同。 raw和html_safe有什么区别? –
看看这个:http://stackoverflow.com/questions/4251284/raw-vs-html-safe-vs-h-to-unescape-html –
谢谢。我想我现在明白了。如果你不使用圆括号(例如'raw navigation [:games,:new,:previous,:settings')),则raw对于方法调用更好,而html_safe在字符串上看起来更好。 –