【问题标题】:I get an error when running ` rails g` on top of ruby 1.8.7 (2011-12-28 patchlevel 357) [i386-mingw32]在 ruby​​ 1.8.7 (2011-12-28 patchlevel 357) [i386-mingw32] 上运行“rails g”时出现错误
【发布时间】:2012-01-24 00:40:36
【问题描述】:

我的系统上同时安装了 ruby​​ 1.8.7 和 1.9.2。我有一个最初使用 ruby​​ 1.9.2 构建的 rails 项目;但是因为我听说 1.8.7 更快,所以我尝试使用 ruby​​ 1.8.7 切换并完成它。然而,每当我运行某些命令时,现在它的 Rails g,我在终端中得到以下输出:

    C:\Users\Edu\workspace\tasks>rails g
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/depende
ncies.rb:234:in `load': C:/Users/Edu/workspace/tasks/config/initializers/session
_store.rb:3: syntax error, unexpected ':', expecting $end (SyntaxError)
...sion_store :cookie_store, key: '_tasks_session'
                              ^
        from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_su
pport/dependencies.rb:234:in `load'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_su
pport/dependencies.rb:223:in `load_dependency'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_su
pport/dependencies.rb:640:in `new_constants_in'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_su
pport/dependencies.rb:223:in `load_dependency'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_su
pport/dependencies.rb:234:in `load'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/engine.r
b:556
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/engine.r
b:555:in `each'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/engine.r
b:555
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initiali
zable.rb:30:in `instance_exec'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initiali
zable.rb:30:in `run'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initiali
zable.rb:55:in `run_initializers'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initiali
zable.rb:54:in `each'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initiali
zable.rb:54:in `run_initializers'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/applicat
ion.rb:96:in `initialize!'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/railtie/
configurable.rb:30:in `send'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/railtie/
configurable.rb:30:in `method_missing'
        from C:/Users/Edu/workspace/tasks/config/environment.rb:5
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/applicat
ion.rb:83:in `require'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/applicat
ion.rb:83:in `require_environment!'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/commands
.rb:22
        from script/rails:6:in `require'
        from script/rails:6

从阅读其他问题来看,这与 1.8 不了解 rails 3.1 的一些语法有关。我的问题是,有什么资源可以解决这个问题吗?我真的很喜欢在我的应用程序开发和测试中增加 1.8.7 的速度。如果没有,是否有其他建议可以加快我的开发速度?

【问题讨论】:

  • 你所说的“1.8.7的增加速度”是什么意思? everybenchmark 中的 1.9.x 比 1.8.x 快,我可以 find。还是我误会了?

标签: ruby ruby-on-rails-3


【解决方案1】:

您(或其他人)使用 Ruby 1.9 生成了应用程序。这意味着它使用的是新到 1.9 的哈希变体 (key: value),而不是 1.8 版本 (:key => value)。

如果您想在 1.8.7 上使用此应用程序,您需要将其更新为 config/initializers/session_store.rb 中的后者。

【讨论】:

  • 我发现如果我修复了这个哈希,我会在使用相同 1.9 哈希变体的许多其他文件中遇到同样的问题。有没有办法在我的应用程序中完成并更改它?
  • 除了运行你的服务器并在它们出现时修复它,不。
  • 我想我终于开始更好地理解 RoR 堆栈了。
猜你喜欢
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 2012-11-23
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多