2017-06-20 5 views
0

レールアプリケーション用に選択したプラグインと日付ピッカーを実装しようとしています。ページは実際にプラグインをリフレッシュして戻します)、プラグインは表示されていて、リセットされたかのように非常に迅速に消えます。2回目にページを訪問したときにcss/jsが適用されない

私はこの問題を探求しようとしましたが、実際にはレール上に何も見たことがありませんでした。スクリプトが提供される方法とブートストラップのCSS/jsファイルと関係がありますが、それを特定することはできません。

私のページの読み込みに[キャッシュミス]も発生しています(差があれば)。

物事は私が試してみた:

  • は、私は両方のapplication.jsに必要とし_form.erbに直接プラグインを初期化するためのjQueryを移動
  • をapplication.cssの順序を切り替えます。 htmlページ
  • はトンを設定するためのクイックフィックスとしてdocument.readyでのsetTimeoutを使用して
  • document.ready言った(とdocument.bindを使用して)削除application.js
  • にdocument.readyにjQueryの移動します部分JSを疑う私はいくつかの奇妙な理由で(ない場合)

ため.chosenと.datepickerをオーバーライドされたときに戻って、彼らが

  • (ここにはサイコロ)「リセットません」を取得した後、部分的に削除裾はここにいくつかありますコードの、私はこれが愚かでシンプルな何か私は行方不明と感じる。

    //= require rails-ujs 
    //= require turbolinks 
    //= require jquery.min 
    //= require jquery_ujs 
    //= require jquery-ui 
    //= require_tree . 
    //= require chosen.jquery.min 
    //= require bootstrap-datepicker 
    
    $(document).ready(function(){ 
    
        $('.chosen').chosen(
         { 
          allow_single_deselect: true, 
          no_results_text: 'No results matched', 
          width: '200px' 
         } 
        ); 
    
        $('.datepicker').datepicker(); 
    
    
    }); 
    

    と私はturbolinksはそれを作ると思います

    <div class="field"> 
        <%= form.label :customer_id %> 
        <%# form.text_field :customer_id, id: :order_customer_id %> 
        <%= collection_select(:order, :customer_id, @customers, :id, :name,{selected: order.customer_id, prompt: false}, { class: 'chosen' }) %> 
        </div> 
    
        <div class="field"> 
        <%= form.label :date %> 
        <%# form.date_select :date, id: :order_date, class: 'datepicker' %> 
        <%= form.text_field :date, default: 'Pick a date', class: 'datepicker' %> 
        </div> 
    
  • +0

    ブラウザのコンソールにエラーがありますか? –

    +0

    私はときどきDatePickerに関連して "Object.parseDateで未定義のプロパティ 'split'を読むことができませんが、何の効果もないようです。 datepickerのための必要性を取り除くことを試み、問題は選択されたままにとどまっています。また、私はrake資産を試したことを思い出してください:clobberとrakeの資産:成功なしでプリコンパイルしてください。 – nab1994

    答えて

    0

    _form.html.erb application.css

    /* 
    *= require_tree . 
    *= require_self 
    *= require chosen.min 
    *= require datepicker 
    */ 
    

    問題。 application.jsファイルの//= require turbolinks行を削除して、アプリケーションを再起動すると確認できます。 アプリケーションにターボリンクが本当に必要な場合は、この問題を解決するためのリンクをご覧ください。

    Rails 4: how to use $(document).ready() with turbo-links

    はそれがお役に立てば幸いです。

    +1

    ありがとう!これはそれであり、理にかなっています。 $(document).readyを$(document).on( 'turbolinks:load')に変更したところ、完全に機能しました。 – nab1994

    関連する問題