在Rails link_to中使用turbolinks

只是想知道是否有一种方法可以直接在rails link_to助手中使用turbolinks,但是一些Google的search没有发现任何值得注意的事情,这里是我尝试过的一些无用的东西。

<%= 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)上的属性。

提前致谢。

最初我以为你需要使用哈希火箭语法的符号,但事实并非如此。 你可以使用一个data: hash,而在这个hash里面,任何使用下划线的符号都会被转换成破折号。

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

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

但是下面也是有效的:

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

Turbolinks 5使用稍微不同的语法

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

来源: Turbolinks Github页面

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

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

只要做到以下几点:

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

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

@约瑟夫你是对的,但只有很小的变化:

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

当我inputturbolinks: false不适用于布尔,只有当我使用string价值turbolinks: 'false' 。 所以也许有人帮助这个信息;)。

或Ruby 1.9+语法:

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

但是我最终放弃了Wiselinks而使Wiselinks变得清晰,并且Wiselinks还支持部分更新(例如分页),replace状态(不污染浏览器历史,非常适合列sorting),表单提交search表单),redirect,支持没有历史API的浏览器以及更智能的资产更改处理。

当你想使用语言环境来更改语言时,你可以像这样:

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