为什么我不能将它作为achor标签?
为什么以下代码无效。
我p
a
a
span
a
span
<p class="paraClass">
<a>
<span id="cartitems">
<%= pluralize(@size, 'item') %>
</span>
</a>
</p>
后关闭{{1}}
这是代码。怎么了?
{{1}}
请帮忙
答案 0 :(得分:2)
A-Tag需要有一个href - 否则它只是一个锚。
一个好方法是使用名为link_to
的铁轨助手
您可以通过两种方式使用它,只需传递content-string和url,或传递url和块。如果传递一个块,则块的返回将用作a-tag的显示。
link_to "content", "url", {options}
link_to "url", {options} do
block
end
除非您只是使用某些字符串作为显示文本,否则我总是建议您使用块样式。您可以更轻松地编辑该块内部的内容,当然也更容易阅读和理解。
在你的情况下,它将是:
<p class="paraClass">
<%= link_to "#", onclick: "return false;" do %>
<span id"cartitems">
%= pluralize(@size, 'item') %>
</span>
<%- end %>
</p>
也许您想切换到 haml ,这可以帮助您轻松编写HTML。在Haml中,相同的代码在2行代码中看起来很甜:
=link_to "#" do
%span#cartitems=pluralize @size, "item"
答案 1 :(得分:1)
更新: [根据评论]
简单。只需添加 href标记,如下面的代码:
<p class="paraClass">
<a>
<span id="cartitems">
<%= pluralize(@size, 'item') %>
</span>
</a>
</p>
<!-- here simply changing the color -->
<style>
a { cursor: pointer; }
a:hover{ color: #ff9900; }
</style>
答案 2 :(得分:0)
<%= link_to content_tag(:span, pluralize(@size, 'item') ), '#' %>
使用链接标记content_for ...以便它显示你想要的方式