如何向Rails的link_to方法输出的HTML中添加自定义属性

17

使用 Rails 2.3.8 我正在尝试获得如下的 HTML 输出:

    <a href="/product/list" data-role="button">Product list</a>

所以一个带有自定义属性"data-role"的A标签。(我之所以想要"data-role"属性,是因为我正在使用JQuery Mobile,它会识别这个属性并执行其魔法) 因此我试图这样做

    <%= link_to "product list", :controller => "product", :action => "list", "data-role" => "button" %>
根据这个指南的说法,也许在rails 3中可以这样做,但在rails 2.3.8中,它会通过在链接URL上生成data-role = button参数来解释它。
我可以使用url_for进行替代以获得所需的HTML输出:
    <a href="<%=url_for :controller =>"product", :action => "list" %>" data-role="button">Product list</a> 

有点长且难看。 是否有办法使link_to在A标记中输出自定义属性(?)

2个回答

26

尝试一下

<%= link_to "product list", { :controller => "product", :action => "list" }, "data-role" => "button" %>

希望能找到一种方法来修改link_to,以便始终生成带有按钮数据角色的链接。 - William
我来晚了,但现在你可以使用Rails HTML助手完成这个任务。 - Fedcomp

0

我在Rails中使用link_to来使用fancybox。

<%= link_to image_path('website/website_new/apps/filter_2.png'),"data-fancybox"  => "images" do %>
  <%= image_tag "website/website_new/apps/filter_2.png", class:"image-medium inline-block cast-shadow" %>
<% end %>

输出:

<a data-fancybox="images" href="/assets/website/website_new/apps/filter_1-d6e69e3728465146276c548645b649be.png"><img class="image-medium inline-block cast-shadow" src="/assets/website/website_new/apps/filter_1-d6e69e3728465146276c548645b649be.png" alt="Filter 1"></a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接