1

view: <%= observe_form 'new_lead', :url => { :action => 'update_price' }, :frequency => 0.1 %> 、 _update_price.rjs パーシャル、およびコントローラーにこのメソッドにobserve_form があります。



      def update_price
        unless request.xhr?
          redirect_to :controller => 'index'
        else
          set_price_group

          render :partial => "update_price", 
                 :locals  => { :services => params[:service], 
                               :spectr   => params[:spectr]   }
        end
      end

rails_2 アプリを rails_3 にアップグレードしています。rails_2 ではエラーはありませんが、プロジェクトを rails3 にアップグレードすると、prototype.js の 3484 行に "$(...).getElementsByTagName は関数ではありません" という javascript エラーが発生します。



       getElements: function(form) {
        return $A($(form).getElementsByTagName('*')).inject([],
        function(elements, child) {
          if (Form.Element.Serializers[child.tagName.toLowerCase()])
            elements.push(Element.extend(child));
          return elements;
        }
       );}, 

また、「update_price」は定期的に呼び出しません。Railsのアップグレードに関連する問題なのか、JSの問題なのかわかりません:(どうすればこの問題を解決できますか?

4

2 に答える 2

0

Rails 3.1 は Prototypejs の代わりに jQuery を使用します。https://github.com/rails/prototype-railsのようなものを使用して、プロトタイプ機能を取り戻すことができます

関連Rails 3.1 で jquery をプロトタイプに交換する方法

于 2013-03-28T15:37:13.513 に答える
0

誰かがエラーを起こした場合よりも:



    TypeError: document.on is not a function

プロトタイプ.js 1.6.x を 1.7 に変更すると解決します;)

于 2013-03-28T22:43:50.377 に答える