44

只是想知道是否有一种方法可以直接在 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 或 divs。

提前致谢。

4

6 回答 6

105

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

<%= 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) %>

于 2013-01-14T01:49:03.457 回答
71

Turbolinks 5 使用稍微不同的语法

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

来源:Turbolinks Github 页面

于 2016-06-23T18:27:39.193 回答
17

您可以毫无问题地使用符号来生成以下代码:

 <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,例如trueto "true"

于 2013-01-27T01:20:50.033 回答
6

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

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

当我输入时turbolinks: false不适用于 bool,仅当我使用 string 作为 value 时才有效turbolinks: 'false'。所以也许有人帮助这个信息;)。

于 2016-07-07T08:40:48.043 回答
4

或 Ruby 1.9+ 语法:

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

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

于 2013-08-20T07:08:58.277 回答
0

当您想使用语言环境更改语言时,您可以这样做:

<%= link_to content_tag(:span, "Українською"),  {locale: :uk},  
data:{ turbolinks: "false" }%>
于 2017-02-21T13:23:24.840 回答