web-dev-qa-db-ja.com

Rails link_toでターボリンクを使用する

Rails link_toヘルパーでターボリンクを直接使用する方法があるかどうか疑問に思ったが、グーグルの簡単なビットは注目すべきことを明らかにしなかった。 。

<%= 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など、リンクを囲む要素に属性を含めるだけです。

前もって感謝します。

40
Gareth Jones

Rails 5 +:の編集)@ManishShrivastavaは、Rails 5 Joseph's answer に示すように。

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

For Rails 4 and below

もともと、シンボルにハッシュロケット構文を使用する必要があると思いましたが、そうではありません。 _data:_ハッシュを使用でき、そのハッシュ内でアンダースコアを使用するシンボルはすべて___がダッシュ_-_に変換されます。

私はほとんどのRails開発者は以下を見ることを好むと思います(私はより良く知っている私を含む):

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

ただし、以下も機能します。

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

96
Gerry Shaw

Turbolinks 5はわずかに異なる構文を使用します

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

ソース: Turbolinks Github Page

69
Joseph N.

問題なくシンボルを使用して、次のコードを生成できます。

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

以下を実行してください。

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

注::no_turbolinkno-turbolinkになり、値はto_jsonを使用して自動的にJSONに変換されます。 trueから"true"へ。

16
Dinuz

@ジョセフは正しいですが、わずかな変更のみ:

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

turbolinks: falseと入力しているときはboolでは動作せず、値turbolinks: 'false'に文字列を使用しているときのみ動作します。だから誰かがこの情報を手伝うかもしれません;)。

6
Štefan Bartoš

またはRuby 1.9+構文:

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

しかし、すべてのリンクで動作を明示的にする Wiselinks を優先してターボリンクを削除することになりました)、フォーム送信(検索フォームに最適)、リダイレクト、履歴APIを使用しないブラウザーのサポート、およびよりインテリジェントなアセット変更処理。

4
Andrew Hacking

ロケールを使用して言語を変更する場合は、次のようにします。

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