在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后没有改变。
唯一另一个有趣的事情是我的整个测试套件通过,除了一个请求/集成规范,它贯穿创建新用户的过程。当我甚至无法访问开发中的页面时,我的请求规范工作正常似乎很奇怪。
关于我能做些什么来解决这个问题的任何想法?
答案 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
希望这有帮助。