16

所以我试图把它变成一个link_to链接:

<a class="dropdown-toggle" data-toggle="dropdown" href="#">Sign-In <b class="caret"></b></a>

到目前为止我有这个,但无法弄清楚如何处理<b class="caret"></b>. 我在末尾尝试了一个 do 块link_to,但只得到了一个错误。

<%= link_to "Sign-In", new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} %>

我刚刚开始学习 Rails,并且四处搜索(包括阅读 RoR API 文档)但没有任何工作。谢谢您的帮助!

4

4 回答 4

38

link_to就上下文而言,您提供的内容是可以的。

让我告诉你这是怎么回事:

这是您提到的链接:

<%= link_to "Sign-In", new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} %>

这是上面的link_to形成的对应的html链接:

<a href="users/sessions/new" class="dropdown-toggle" data-toggle="dropdown">Sign-In</a>

现在考虑这个链接:

<%= link_to(raw("Sign-In" +("<b class= 'caret'></b>")), new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"}) %>

上面的链接将为您提供以下 html 链接:

<a class="dropdown-toggle" data-toggle="dropdown" href="users/sessions/new">Sign-In<b class= 'caret'></b></a>

现在你几乎接近你的结果了。唯一的就是href。

好的,让我们稍微修改一下上面link_to的内容,只需更改href 路径为-

<%= link_to(raw("Sign-In" +("<b class= 'caret'></b>")), "#", :class => "dropdown-toggle", :data => {:toggle=>"dropdown"}) %>

生成的链接现在等同于您想要的:

<a href="#" class="dropdown-toggle" data-toggle="dropdown">Sign-In<b class= 'caret'></b></a>
于 2013-02-27T08:39:48.567 回答
11

如果您提供一个块,则省略第一个参数(通常是 a 标签的内容),它将被块产生的内容替换。

<%= link_to new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} do %>
  Sign-In <b class="caret"></b>
<% end %>
于 2013-02-27T06:58:30.377 回答
0

将链接放在一个容器中,它可以是一个 div 并放置一个类 =“dropdown”。

 <div class="dropdown">
    <%= link_to image_tag('icons/lock_icon.png') + " Log In" +('<b class="caret"></b>').html_safe , '#', { :class => 'dropdown-toggle', 'data-toggle' =>  'dropdown' } %>
 </div>
于 2013-02-27T07:03:42.603 回答
0

它必须是 link_to 中的数据属性 link_to remove_user_path(recipient_id: recipient.id) , method: :delete, data: {confirm: 'Are you sure you want to delete?'}

于 2017-07-31T18:40:15.467 回答