【发布时间】:2018-01-03 17:57:13
【问题描述】:
我想让“商店”页面在新选项卡中打开,我知道你可以在 hrefs 和 link_to 上设置 target: :_blank,但我不知道如何在此处设置它。任何帮助表示赞赏。
def nav_items
[
{
url: root_path,
title: 'Home'
},
{
url: shop_path,
title: 'Shop', target: :_blank
},
{
url: subscribe_path,
title: 'Subscribe'
},
{
url: about_path,
title: 'About'
},
{
url: contact_path,
title: 'Contact'
},
]
end
def nav_helper style, tag_type
nav_links = ''
nav_items.each do |item|
nav_links << "<#{tag_type}><a href='#{item[:url]}' class='#{style} #{active? item[:url]}'>#{item[:title]}</a></#{tag_type}>"
end
nav_links.html_safe
end
【问题讨论】:
-
你不能只在 nav_items 循环的锚标记内添加
target="_BLANK"吗?您希望在哪里尝试在 nav_items 方法中准确实现这一目标? -
也许使用现有的 Rails 助手如
content_tag来生成 HTML 元素是有意义的。另外,如果我可以从外部修改url或title,那么在这种情况下使用html_safe方法可能会导致XSS 攻击。
标签: html ruby-on-rails ruby