2015-04-15 33 views
0

我向add_item_to_contract發出我的請求AJAX請求。該代碼執行所有需要更新的動作,那麼我們「的respond_to」和瀏覽器接收到一個500:Rails 3.2.21中的NoMethodError,update_details

respond_to do |f| 
    f.html { redirect_to :action => "materials_list", :id => @contract.id } 
    f.js 
end 

以上先前代碼段的第一行是sales_team_controller的線49。如果我評論f.js,沒有錯誤,但我的請求不使用我的RJS模板(因此它不起作用)。錯誤日誌此請求的內容包括錯誤,則在服務器500響應類似的形式(這是一個HTML頁面,可以在請求提供)也返回此錯誤:我執行

ActionView::Template::Error (undefined method `update_details' for #<ActionView::LookupContext:0x007f8ec898d830>): 
    2: # page.select("div#notice").each { |div| div.hide } 
    3: #END_HIGHLIGHT 
    4: 
    5: page.insert_html(:bottom, "materials_for_contract", :partial => "bm_added") 
    6: 
    7: if @material 
    8: div = "material_#{@material.parent_id.nil? ? @material.id : @material.parent_id}" 
    app/views/sales_team/add_item_to_contract.rjs:5:in `block in _app_views_sales_team_add_item_to_contract_rjs___3966334417793066345_37361160' 
    app/views/sales_team/add_item_to_contract.rjs:1:in `_app_views_sales_team_add_item_to_contract_rjs___3966334417793066345_37361160' 
    app/controllers/sales_team_controller.rb:49:in `add_item_to_contract' 

我.rvm目錄和我一個grep的發現update_details的一個實例:

.rvm/gems/ruby-1.9.3-p551/gems/actionpack-3.2.21/lib/action_view/renderer/abstract_renderer.rb:3: delegate :find_template, :template_exists?, :with_fallbacks, :update_details, 

有年長的Rails版本update_details的多個實例,只有一個3.2.21。此外,此實例在幾年前從Github中刪除:https://github.com/rails/rails/pull/6858

我不確定我應該如何解決此問題。我確實嘗試將我的abstract_renderer.rb副本更新爲與我在Github上發現的類似,但源代碼中的更改似乎不會傳播到實際運行的任何副本。

回答

0

我停止使用Rails 3.2.21 gem並從Github切換Rails 3.2 stable分支。