【发布时间】:2014-06-21 13:18:56
【问题描述】:
我最近从 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 项目,只是突然在这个特定的应用程序上得到这个没有隐式转换错误。
当其他开发人员没有得到它时,我会在我的本地机器上得到这个错误,有什么特别的原因吗? (我认为是我的本地设置导致了问题,而不是代码)
编辑:事实证明这是会话的设计问题。我能够通过Devise upgrade from 1.1.5 to 1.4.5 causes Wrong Number of Arguments error 解决它
【问题讨论】:
-
除了转换错误之外,您应该尽快升级到 Rails 3.2.17,以获取去年 2 月的安全修复。见weblog.rubyonrails.org/2014/2/18/…。
标签: ruby-on-rails ruby-on-rails-3 devise osx-mavericks ruby-2.1