Rails 3.2.21中的NoMethodError,update_details

时间:2015-04-15 22:23:45

标签: ruby-on-rails-3

我向add_item_to_contract发出请求AJAX请求。代码执行更新所需的所有操作,然后我们“响应”。并且浏览器收到500:

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

上面上一段代码片段的第一行是sales_team_controller的第49行。如果我评论f.js,没有错误,但我的请求没有使用我的RJS模板(因此它不起作用)。此请求的错误日志的内容包括此错误,此错误也以类似的形式返回到Server 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上发现的副本,但源代码的变化似乎并没有传播到我实际运行的任何副本。

1 个答案:

答案 0 :(得分:0)

我停止使用Rails 3.2.21 gem并从Github切换了Rails 3.2稳定分支。