3161


controllerが10個あり、対応するviewも同じ数だけある場合
6個のviewで使っているjavascriptを１個のファイルとしてapp/asset/javascript/以下に置きました。

その後、適用したいviewとは別の1個のviewがそのjavascriptの内容と競合してしまいそのviewのみ適用したくないという状況になりました。

こういう事が起こった場合どのようにするのがスマートでしょうか？

補足

起こっている競合は、datetimepickerが二重にかかってしまうという事です。

6個のviewでは共通のオプションでの適用だったのでまとめましたが、別の1個の方では別のオプションで適用しようとし、こちらは
**app/asset/javascript/該当のcontroller名.js** に書きました。


CC BY-SA 3.0
2015-01-06T02:47:11.247
3157
2015-01-06T03:46:03.060
2015-01-06T03:46:03.060
420
420
question
javascript ruby-on-rails
特定のViewのみ読み込みたくないjavascriptがある。


特定のViewのみ読み込みたくないjavascriptということは、特定のViewでのみ読み込みたいと同じことなので、以下のように設定することで可能です。

現状が以下の構成だとします

  * app/assets/javascripts/ 
    * application.js
    * 共通で読み込みたい.js
    * 特定のViewのみ読み込みたい.js

これを以下のように変更します

  * app/assets/javascripts/ 
    * application.js
    * common/ 
      * 共通で読み込みたい.js
    * 特定のViewのみ読み込みたい.js

app/assets/javascripts/application.jsを変更します

[code]

    - //= require_tree .
    + //= require_tree ./common
    
[/code]

これで、commonフォルダ以外の物は指定しないかぎり読み込まれなくなります。

特定のViewのview.html.hamlに以下を追記します

[code]

    + javascript_include_tag '特定のViewのみ読み込みたい.js'
    
[/code]

config/application.rbに以下を追記します

[code]

    + config.assets.precompile += Rails.root + 'app/assets/javascripts/特定のViewのみ読み込みたい.js'
    
[/code]

以上で、目的を果たせるかと思います。

* * *

しかしながら、私は、「全てのページで常に読み込んでも問題ないようにjsを組む」のが一番スマートだと思います。


CC BY-SA 3.0
2015-01-06T03:25:51.903
3161
2015-01-06T03:25:51.903
427
3157
answer