我最近从 10.7 升级到 OSX Mavericks 10.9,从那以后它给我带来了很多麻烦。我升级了 Xcode、命令行工具,重新安装了 homebrew 和 rvm,终于让 rails s 开始工作了(我花了 5 个小时让 rmagick 重新开始工作)。
但是,现在当我尝试从本地主机访问我的应用程序时,出现此错误
no implicit conversion of Array into String
这是rails日志:
Started GET "/" for 127.0.0.1 at 2014-05-05 02:20:00 -0700
Processing by AccountsController#dashboard as HTML
Completed 500 Internal Server Error in 0.3ms
TypeError (no implicit conversion of Array into String):
app/controllers/application_controller.rb:26:in `check_correct_subdomain'
Rendered /Users/kibaek/.rvm/gems/ruby-2.1.0@onvard/gems/actionpack-3.2.16/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms)
Rendered /Users/kibaek/.rvm/gems/ruby-2.1.0@onvard/gems/actionpack-3.2.16/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
Rendered /Users/kibaek/.rvm/gems/ruby-2.1.0@onvard/gems/actionpack-3.2.16/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.1ms)
这是调用错误的 application_controller.rb:
def check_correct_subdomain
if current_user
redirect_to root_url(subdomain: current_user.account.domain) if request.subdomain != current_user.account.domain
end
end
这是我的版本:
Kibaeks-MacBook-Pro:onvard_saas kibaek$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
Kibaeks-MacBook-Pro:onvard_saas kibaek$ rails -v
Rails 3.2.16
Kibaeks-MacBook-Pro:onvard_saas kibaek$ bundle -v
Bundler version 1.5.1
Kibaeks-MacBook-Pro:onvard_saas kibaek$ rvm -v
rvm 1.25.25 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
- 在我的 Mavericks 升级之前,我们也在使用 rails 3.2.16 和 ruby 2.1.0。我刚刚将自制软件、rvm 和 rails/ruby 重新安装到相同的版本。
我把它推送到登台服务器,我的另一个开发人员说它在他的机器上本地工作,所以我认为这可能是我在升级到 Mavericks 的过程中所做的事情,或者在尝试修复时复制+粘贴了一堆东西imagemagick/rmagick 错误..
*我能够访问我的其他 Rails 项目,只是突然在这个特定的应用程序上得到这个没有隐式转换错误。
当其他开发人员没有得到它时,我会在我的本地机器上得到这个错误,有什么特别的原因吗?(我认为是我的本地设置导致了问题,而不是代码)
编辑:结果证明这是会话的设计问题。我能够通过从 1.1.5 升级到 1.4.5 导致错误数量的参数错误来解决它