从Rails 3.0.14升级到Rails 3.1.4后,参数数量错误(3个为2)

时间:2012-03-16 15:36:59

标签: ruby-on-rails-3.1

在Rails 3.0.14中,一切都运行良好,但在更改之后 gem 'rails', '3.0.14'gem 'rails', '3.1.4'并且正在运行bundle update rails我现在收到以下错误:

Started GET "/" for 127.0.0.1 at 2012-03-16 11:11:44 -0400
  Processing by PagesController#index as HTML
  Completed 500 Internal Server Error in 54ms
  ArgumentError (wrong number of arguments (3 for 2)):
     app/controllers/application_controller.rb:37:in `customize_by_subdomain'```

最流行的答案似乎是sqlite3需要更新,但我做bundle update sqlite3并且我仍然遇到同样的问题。

以下是完整的跟踪:https://gist.github.com/2050530

它抱怨的方法如下:

35 def customize_by_subdomain
36   subdomain = (request.subdomain.present? && request.subdomain != 'www' && request.subdomain) || 'launch'
37   @current_org = Organization.find_by_subdomain(subdomain) || Organization.find_by_subdomain('launch')
38 end

我看过很多类似的问题,但我找不到任何可以解决问题的方法。最接近我的问题是:wrong number of arguments (3 for 1) after upgrading rails from 3.1.1 to 3.1.3但我使用的是authlogic,我使用的版本在升级rails后没有改变。

唯一另一个有趣的事情是我的整个测试套件通过,除了一个请求/集成规范,它贯穿创建新用户的过程。当我甚至无法访问开发中的页面时,我的请求规范工作正常似乎很奇怪。

关于我能做些什么来解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:2)

看起来你的New Relic插件可能需要更新到新版本。在您的stacktrace中,第一行来自plugins文件夹中的New Relic代码。在他们的网站上,看起来他们发布了新的Rails 3.1特定代码:

http://blog.newrelic.com/2011/07/29/for-the-active-record-new-relic-support-for-rails-3-1-is-here/

在博客文章中,他们讨论了ActiveRecord日志记录方式的变化,并且您的异常是在log_with_instrumentation方法上触发的。

现在看来你应该把它安装为gem而不是插件: https://github.com/newrelic/rpm

希望这有帮助。