0

在最新版本的 rails 中,我的应用程序有以下几行没有任何问题:

gem 'linguistics' # in Gemfile

Linguistics::use(:en, :installProxy => :en) # In environment.rb

最近我从 Ruby 1.8.7 升级到 Ruby 1.9.2 并且正在使用 Rails 的边缘版本。当我启动服务器时,我现在看到以下内容:

=> Booting WEBrick
=> Rails 3.1.0.beta1 application starting in development on
http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server Exiting /Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/linguistics-1.0.8/lib/linguistics.rb:177:in
`en': can't modify frozen object
(RuntimeError)  from (eval):6:in
`method_missing'    from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.beta1/lib/rails/commands/server.rb:78:in
`middleware'    from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.0.beta/lib/rack/server.rb:291:in
`build_app'     from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.0.beta/lib/rack/server.rb:301:in
`wrapped_app'   from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.3.0.beta/lib/rack/server.rb:252:in
`start'     from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.beta1/lib/rails/commands/server.rb:69:in
`start'     from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.beta1/lib/rails/commands.rb:53:in
`block in <top (required)>'     from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.beta1/lib/rails/commands.rb:48:in
`tap'   from
/Users/alextan/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.beta1/lib/rails/commands.rb:48:in
`<top (required)>'  from
script/rails:6:in `require'     from
script/rails:6:in `<main>'

关于如何解决这个问题的任何想法?这是语言学和 Ruby 1.9.2 之间的不兼容吗?

4

1 回答 1

1

我认为这主要是 Rails 兼容性问题,因为在提交 1.9.2 compat 中提到,依次尝试,而不是同时尝试,以确保 1.9.2 和 rails 3 工作,然后切换到 edge rails。

您可能想尝试一下,如果那里有实际版本,请尝试(在您的 gemfile 中包含此版本):

gem update linguistics --pre

或者确保在您的 gemfile 中更新它

gem 'linguistics', :git => 'https://github.com/ged/linguistics.git'
于 2011-05-18T07:46:51.980 回答