link_to选项

时间:2013-02-27 06:46:09

标签: ruby-on-rails twitter-bootstrap

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

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

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

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

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

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:11)

如果你提供一个块,你省略了第一个参数(通常是a标签的内容),它将被块产生的内容所取代。

<%= link_to new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} do %>
  Sign-In <b class="caret"></b>
<% end %>

答案 2 :(得分:0)

将链接放在容器中,它可以是div并放置class =“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>

答案 3 :(得分:0)

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