Quantcast
Channel: OKWAVE 最新質問([技術者向] コンピューター/205)【本日】
Viewing all articles
Browse latest Browse all 38062

Rails3での旧Ajaxメソッドの使い方

$
0
0
Rails3にしたことで、現在、以前に使っていた、Ajax系のメソッドである、 drop_receiving_element や draggable_element が使えなくなっています。それで色々調べてみて、 下記のscriptaculous_helper.rbを、app/helpersの下に置きました。 そしてこのメソッドを使っている、app/views/tasks/index.html.erbの最初に、 require 'scriptaculous_helper' を記述してWEBrickを起動すると、 Routing Error uninitialized constant ScriptaculousHelper Try running rake routes for more information on available routes. のエラーになります。 これを動作させるためには、後どのようなヘルパーや、Javascript関連のファイルの設定が必要になるのでしょうか? 設定の御経験のある方、御教示願えたらと思います。 module ActionView::Helpers::ScriptaculousHelper def draggable_element(element_id, options={}) set_default_external!(options) external = options.delete :external prepare_script(element_id, draggable_element_js(element_id, options).chop!, external) end def draggable_element_js(element_id, options = {}) #:nodoc: %(new Draggable(#{element_id.to_json}, #{options_for_javascript(options)});) end def drop_recieving_element(element_id, options={}) set_default_external!(options) external = options.delete :external prepare_script(element_id, drop_receiving_element_js(element_id, options).chop!, external) end def drop_receiving_element_js(element_id, options = {}) #:nodoc: options[:with] ||= "'id=' + encodeURIComponent(element.id)" options[:onDrop] ||= "function(element){" + remote_function(options) + "}" options.delete_if { |key, value| ActionView::Helpers::PrototypeHelper::AJAX_OPTIONS.include?(key) } options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept] options[:hoverclass] = "'#{options[:hoverclass]}'" if options[:hoverclass] %(Droppables.add(#{element_id.to_json}, #{options_for_javascript(options)});) end def sortable_element(element_id, options={}) set_default_external!(options) external = options.delete :external prepare_script(element_id, sortable_element_js(element_id, options).chop!, external) end def sortable_element_js(element_id, options = {}) #:nodoc: options[:with] ||= "Sortable.serialize(#{element_id.to_json})" options[:onUpdate] ||= "function(){" + remote_function(options) + "}" options.delete_if { |key, value| ActionView::Helpers::PrototypeHelper::AJAX_OPTIONS.include?(key) } [:tag, :overlap, :constraint, :handle].each do |option| options[option] = "'#{options[option]}'" if options[option] end options[:containment] = array_or_string_for_javascript(options[:containment]) if options[:containment] options[:only] = array_or_string_for_javascript(options[:only]) if options[:only] %(Sortable.create(#{element_id.to_json}, #{options_for_javascript(options)});) end protected def prepare_script(element_id, js, external=true) unless external javascript_tag(js) else @controller.apply_behaviour "##{element_id}", js return '' end end end

Viewing all articles
Browse latest Browse all 38062

Trending Articles