2017-06-02 3 views
0

一見簡単な質問では何の答えも見つかりません。私のrails5アプリでは、いくつかのリンクは、新しいページを読み込むためにターボリンクを使用します。しかし、一部は全面リロードを開始するだけです。一部のリンクでTurbolinks 5が動作しない

リンクにjsが付いていないため、そのリンクでターボリンクが無効になっていません。

このリンクはturbolinksにを使用しています:アクションで

= link_to qm_input_path('hour') do ... 
<a class="navbar-brand" href="/qimen/hour/input"> ... 

それは

render layout: 'input' 

を持っており、このリンクはないん:

= link_to qm_chart_path(@foo, @bar), class: 'btn btn-default pull-right next' do ... 
<a class="btn btn-default pull-right next" href="/qimen/hour/chart/foo/bar"> ... 

アクションでそれ

render layout: guess_layout 

したがって、明示的に動作するターボリンクをブロックするものはありません。

なぜですか?

+0

をあなたの 'input'レイアウトとは異なるJavaScriptファイルまたはあなたの' guess_layout'で異なるスタイルシートを使用していますか? –

+0

'' input''と 'guess_layout'は同じ' 'を与えます。 Jsとスタイルは単純な 'stylesheet_link_tag'、' javascript_include_tag'に含まれています。その中に '= javascript_include_tag 'https://maps.googleapis.com .....' 'があります。しかし、この「」はすべてのレイアウトで使用されます。 私の 'guess_layout'は、urlにparam'?print = 1'が与えられた場合にのみ '' print''に解決されます。そして、 ''には、ページを開くときにプリントウィンドウを起動するための追加のjsがあります。しかし、私のユースケースでは私はそこに行かない。私は '.next'リンクを押すだけで、同様のページをブラウズするだけです。そしてページは完全にリロードされます。 – Dahan

+0

Strange。あなたはこれのデモを投稿することができますか? –

答えて

1

リンクのhrefにピリオド(.)が含まれていることが問題です。

Turbolinksは、HTMLと見なすリンクのみを処理します。すなわち、延長期間を持たないもの(例えば、/post/1234)、または最後の期間の後にhtml/htm/xhtml(例えば、/post/1234.html)を有するもの。あなたの場合、フルページの読み込みを終了しているリンクは、/30.335098600000038のようになります。 TurbolinksはこれをHTMLリソースと見なさないので、それを処理しません。

これを解決するには、ピリオドを含む可能性のあるパラメータにクエリ文字列を使用することをおすすめします。あなたのリンクのいずれかを整理するためにたとえば、あなたが試みることができる:

qimen/hour/chart?time=2017-06-03T15:27:48+03:00&city=St.%20Petersburg&longitude=30.335098600000038 
+0

スーパー。ありがとうございました! – Dahan

関連する問題