Ruby on rails rails内容标签导航生成器帮助程序
很抱歉,如果这听起来很明显,但我感到困惑。 我正在尝试构建一个导航列表帮助器 此时,它从数组接收链接列表Ruby on rails rails内容标签导航生成器帮助程序,ruby-on-rails,helpers,content-tag,Ruby On Rails,Helpers,Content Tag,很抱歉,如果这听起来很明显,但我感到困惑。 我正在尝试构建一个导航列表帮助器 此时,它从数组接收链接列表 module ApplicationHelper def site_pages %w{index about contact promotions} end def nav_builder list list.map do |l| content_tag :li do content_tag :a, :href =>
module ApplicationHelper
def site_pages
%w{index about contact promotions}
end
def nav_builder list
list.map do |l|
content_tag :li do
content_tag :a, :href => "#{l}_path" do
l
end
end
end
end
end
[<li><a href="index_path">index</a></li> <li><a href="about_path">about</a></li> <li><a href="contact_path">contact</a></li> <li><a href="promotions_path">promotions</a></li>]
但当我运行页面时,它输出的所有内容都是作为数组的页面
module ApplicationHelper
def site_pages
%w{index about contact promotions}
end
def nav_builder list
list.map do |l|
content_tag :li do
content_tag :a, :href => "#{l}_path" do
l
end
end
end
end
end
[<li><a href="index_path">index</a></li> <li><a href="about_path">about</a></li> <li><a href="contact_path">contact</a></li> <li><a href="promotions_path">promotions</a></li>]
[]
而不是显示链接列表。
有什么特别的事要做吗
==编辑==
我这样称呼我的建筑商:
<%= nav_builder site_pages %>
希望帮助程序返回HTML字符串,而不是数组。尝试将数组元素合并到单个字符串中:
def nav_builder list
list.map do |l|
content_tag :li do
content_tag :a, :href => "#" do
"test"
end
end
end.join("\n").html_safe
end
助手应该返回一个HTML字符串,而不是数组。尝试将数组元素合并到单个字符串中:
def nav_builder list
list.map do |l|
content_tag :li do
content_tag :a, :href => "#" do
"test"
end
end
end.join("\n").html_safe
end
当我这样做的时候,所有的东西都会在屏幕上以字符串的形式打印出来。它不会将其转换为html,因此我重复使用
- “
- … ”
join(“\n)
替换为join(“\n”).html\u safe
以避免转义html。哦,小细节,它不会转换“{l}”路径(例如about\u路径)。结果是,但如果我通过散列运行它,{:home=>“/”,:about=>“/about=”/about“,:contact=>contact_path}…当我这样做时,仍然会将所有内容作为字符串打印在屏幕上。它不会将其转换为html,因此我重复使用- “
- … ”
join(“\n)
替换为join(“\n”).html\u safe
以避免转义html。哦,小细节,它不会转换“{l}”路径(例如about\u路径)。结果是,但如果我通过散列运行它,{:home=>“/”,:about=>“/about=”/about“,:contact=>contact\u path}”。。。