在Rails link_to中使用turbolinks

Gar*_*nes 40 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'} %>
Run Code Online (Sandbox Code Playgroud)

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

<a data-no-turbolink='true' href="/giraffe-130">Giraffe</a>
Run Code Online (Sandbox Code Playgroud)

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

提前致谢.

Ger*_*haw 96

编辑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) %>


Jos*_* N. 69

Turbolinks 5使用略有不同的语法

<%= link_to "Foo", new_foo_path(@foo), data: { turbolinks: false } %>
Run Code Online (Sandbox Code Playgroud)

资料来源:Turbolinks Github Page

  • 升级到Rails 5之后,这绝对是值得关注的.花了一些时间才意识到属性命名已经改变了. (2认同)

小智 16

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

 <a data-no-turbolink='true' href="/giraffe-130">Giraffe</a>
Run Code Online (Sandbox Code Playgroud)

只需执行以下操作:

 <%= link_to 'Giraffe', giraffe_path(@giraffe),
             :data => { :no_turbolink => true } %>
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

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

当我输入时turbolinks: false不能使用bool,只有当我使用string作为值时才有效turbolinks: 'false'.所以也许有人帮助这些信息;).