在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" }%>