rails observe_form和prototype:return'$ A($(form).getElementsByTagName('*'))'

时间:2013-03-27 22:43:19

标签: ruby-on-rails-3 prototypejs ruby-on-rails-2 updating rjs

我认为我有observe_form: <%= observe_form 'new_lead', :url => { :action => 'update_price' }, :frequency => 0.1 %> ,_update_price.rjs partial和控制器中的此方法:



      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时 我在3484行的prototype.js中有javascript错误: “$(...)。getElementsByTagName不是函数”。



       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'没有定期调用。 我不知道是与铁路升级有关的问题还是只是JS的问题:( 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

Rails 3.1使用jQuery而不是Prototypejs。您可以使用https://github.com/rails/prototype-rails

之类的东西来恢复原型功能

相关How to swap jquery for prototype in Rails 3.1

答案 1 :(得分:0)

如果有人有错误:



    TypeError: document.on is not a function

将prototype.js 1.6.x更改为1.7将解决它;)