在Rails link_to中使用turbolinks

时间:2013-01-09 02:23:30

标签: ruby-on-rails-3.2 turbolinks ruby-on-rails-4

只是想知道是否有一种方法可以直接在rails link_to帮助器中使用turbolinks,快速的谷歌搜索没有发现任何注意事项,这是我试图无济于事的类型。

<%= link_to 'Giraffe', giraffe_path(@giraffe), :data-no-turbolink => 'true' %>
<%= link_to 'Giraffe', giraffe_path(@giraffe), :data { :no-turbolink => 'true'} %>

我知道你可以在像这样的常规链接中做到这一点

<a data-no-turbolink='true' href="/giraffe-130">Giraffe</a>

现在我只是将属性包含在链接周围的元素上,例如lis或div。

提前致谢。

6 个答案:

答案 0 :(得分:95)

编辑Rails 5 +: @ManishShrivastava正确地指出了Rails 5所需的不同语法,如Joseph's answer所示。

<%= link_to('Giraffe', @giraffe, data: { turbolinks: false }) %>

对于Rails 4及以下

最初我认为你需要为符号使用哈希火箭语法,但事实并非如此。您可以使用data:哈希,在该哈希中,使用下划线_的任何符号都将转换为短划线-

我认为大多数Rails开发人员更愿意看到以下内容(包括我自己,我现在知道的更好):

<%= link_to('Giraffe', @giraffe, data: { no_turbolink: true }) %>

但以下也有效:

<%= link_to('Giraffe', @giraffe, 'data-no-turbolink' => true) %>

答案 1 :(得分:69)

Turbolinks 5使用略有不同的语法

<%= link_to "Foo", new_foo_path(@foo), data: { turbolinks: false } %>

来源:Turbolinks Github Page

答案 2 :(得分:16)

您可以使用没有问题的符号来生成以下代码:

 <a data-no-turbolink='true' href="/giraffe-130">Giraffe</a>

请执行以下操作:

 <%= link_to 'Giraffe', giraffe_path(@giraffe),
             :data => { :no_turbolink => true } %>

注意::no_turbolink将变为no-turbolink,并且该值将使用to_json自动转换为JSON,例如true"true"

答案 3 :(得分:6)

@poseph你是对的,但只有很小的变化:

<div class="navigation">
 <div class="alignleft"><?php next_posts_link('&laquo; Older Entries', '1000') ?></div>
 <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;', '1000') ?></div>
</div>

当我输入<%= link_to "Foo", new_foo_path(@foo), data: { turbolinks: 'false' } %> 时无法使用bool,只有在我使用字符串值turbolinks: false时才有效。所以也许有人会帮助这些信息;)。

答案 4 :(得分:4)

或Ruby 1.9+语法:

<%= link_to 'Foo', foo_path(@foo), data: { no_turbolink: true } %>

但我最终放弃了turbolinks而转向Wiselinks ,这使得所有链接上的行为都是明确的,而Wiselinks也支持部分更新(例如分页),替换状态(不会污染浏览器历史记录,非常适合列排序),表单提交(非常适合搜索表单),重定向,支持没有历史API的浏览器,以及更智能的资产变更处理。

答案 5 :(得分:0)

如果您想使用区域设置更改语言,请执行以下操作:

<%= link_to content_tag(:span, "Українською"),  {locale: :uk},  
data:{ turbolinks: "false" }%>