0

Rails 3.0.11、Ruby 1.9.3

ビューファイルでjavascript_include_tag( "js / datepicker")を使用すると、2つのファイルが含まれます。

<script src="/js/datepicker.js?1336410184" type="text/javascript"></script>
<script src="/javascripts/widgets/tooltip.js?1332959153" type="text/javascript"></script>

私が指定しなかった2番目のものに注意してください。それでも含まれています。

私は次のフォルダとファイルを持っています:

/public/javascripts
/public/javascripts/widgets
/public/javascripts/widgets/tooltip.js

/public/js
/public/js/datepicker.js

私のアプリケーションはPrototypeとjQueryを使用しています。datepicker.jsは実際にはProtoplasmDatepickerコントロールです。

/config/application.rb

config.action_view.javascript_expansions[:defaults] = %w(jquery jquery_ujs jquery.prettyPhoto)

/javascripts/widgets/tooltip.jsが自動的に含まれる原因を教えてください。

ありがとう、

ジグネシュ

4

1 に答える 1

0

わかりました、答えを見つけました。

以下は私のアプリケーションに含まれているプラ​​グインです:

rails-widgets-jquery(http://github.com/paolodona/rails-widgets/wikis)

rails-widgets-jquery / lib / widgets/core.rbにあるこのプラグインのcore.rbという名前のファイル

私の質問で言及された動作を引き起こしているjavascript_include_tagを再定義します。

以下のソースコード:

module ActionView
 module Helpers
   module AssetTagHelper

  # We redefine javascript_include_tag in order to auto-magically include
  # the widgets javascripts. If you hame more than one javascript_include_tag
  # call, the widgets javascripts gets included only once.
  def javascript_include_tag_with_widgets(*sources)
    unless @__widgets_has_already_included_its_js
      options = sources.last.is_a?(Hash) ? sources.pop : {} # remove options
      sources << 'widgets/tooltip'
      sources << options # add previously removed option
      @__widgets_has_already_included_its_js = true
    end 
    javascript_include_tag_without_widgets(*sources)
  end
  alias_method_chain :javascript_include_tag, :widgets 
  end
 end
end

@Salilの回答に感謝します。これらは、上記の回答に到達するのに役立ちました。

ありがとう、Jignesh

于 2012-05-23T21:33:07.837 に答える