狂欢商务语法错误

时间:2013-02-04 19:49:49

标签: ruby-on-rails ruby passenger

我真的不认为存在语法问题,我认为它可能是一个版本问题,但是,这对你们来说是什么样的?请注意,这仅发生在生产环境中。我正在使用乘客(因为它是Rails 3而且我不喜欢在制作中使用beta宝石):

宝石版本:1.8.23 Rails版本:3.2.11 Ruby版本:1.9.3p374(我升级它认为它会有所帮助,我之前认为是1.8.7)

# rails s -e production
=> Booting WEBrick
=> Rails 3.2.11 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `polyglot_original_require': /usr/lib/ruby/gems/1.8/gems/spree_api-1.3.1/app/controllers/spree/api/product_properties_controller.rb:11: syntax error, unexpected '.' (SyntaxError)
      .page(params[:page]).per(params[:per_page])
       ^
    from /usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:359:in `require_or_load'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:313:in `depend_on'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:225:in `require_dependency'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:439:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:438:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:438:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:436:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:436:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/devise-2.2.3/lib/devise/controllers/url_helpers.rb:47:in `to_proc'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application/railties.rb:8:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application/railties.rb:8:in `all'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:434:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application/finisher.rb:53
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:30:in `instance_exec'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:30:in `run'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:55:in `run_initializers'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:54:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:54:in `run_initializers'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application.rb:136:in `initialize!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/railtie/configurable.rb:30:in `send'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/railtie/configurable.rb:30:in `method_missing'
    from /home/$user/rails_apps/store/config/environment.rb:5
    from /usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `polyglot_original_require'
    from /usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /home/$user/rails_apps/store/config.ru:3
    from /usr/lib/ruby/gems/1.8/gems/rack-1.4.4/lib/rack/builder.rb:51:in `instance_eval'
    from /usr/lib/ruby/gems/1.8/gems/rack-1.4.4/lib/rack/builder.rb:51:in `initialize'
    from /home/$user/rails_apps/store/config.ru:0:in `new'
    from /home/$user/rails_apps/store/config.ru:0

如果需要更多信息,请告知我们,我可以发送任何要求的信息(理所当然)。

编辑补充:

我修复了任性的“。”但现在看到这个:

# rails s -e production
=> Booting WEBrick
=> Rails 3.2.11 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `polyglot_original_require': /usr/lib/ruby/gems/1.8/gems/spree_api-1.3.1/app/controllers/spree/api/v1/base_controller.rb:68: odd number list for Hash (SyntaxError)
      render :text => { exception: exception.message }.to_json,
                                  ^
/usr/lib/ruby/gems/1.8/gems/spree_api-1.3.1/app/controllers/spree/api/v1/base_controller.rb:68: syntax error, unexpected ':', expecting '}'
      render :text => { exception: exception.message }.to_json,
                                  ^
/usr/lib/ruby/gems/1.8/gems/spree_api-1.3.1/app/controllers/spree/api/v1/base_controller.rb:68: syntax error, unexpected '}', expecting kEND
      render :text => { exception: exception.message }.to_json,
                                                      ^
/usr/lib/ruby/gems/1.8/gems/spree_api-1.3.1/app/controllers/spree/api/v1/base_controller.rb:69: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
             :status => 422 and return
                       ^
    from /usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:359:in `require_or_load'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:313:in `depend_on'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:225:in `require_dependency'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:439:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:438:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:438:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:436:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:436:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/devise-2.2.3/lib/devise/controllers/url_helpers.rb:47:in `to_proc'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application/railties.rb:8:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application/railties.rb:8:in `all'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/engine.rb:434:in `eager_load!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application/finisher.rb:53
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:30:in `instance_exec'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:30:in `run'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:55:in `run_initializers'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:54:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:54:in `run_initializers'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/application.rb:136:in `initialize!'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/railtie/configurable.rb:30:in `send'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.2.11/lib/rails/railtie/configurable.rb:30:in `method_missing'
    from /home/jackal/rails_apps/store/config/environment.rb:5
    from /usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `polyglot_original_require'
    from /usr/lib/ruby/gems/1.8/gems/polyglot-0.3.3/lib/polyglot.rb:63:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
    from /home/jackal/rails_apps/store/config.ru:3
    from /usr/lib/ruby/gems/1.8/gems/rack-1.4.4/lib/rack/builder.rb:51:in `instance_eval'
    from /usr/lib/ruby/gems/1.8/gems/rack-1.4.4/lib/rack/builder.rb:51:in `initialize'
    from /home/jackal/rails_apps/store/config.ru:0:in `new'
    from /home/jackal/rails_apps/store/config.ru:0

2 个答案:

答案 0 :(得分:1)

看起来您正在使用Ruby 1.8(基于路径中的/usr/lib/ruby/gems/1.8/),但render :text => { exception: exception.message }.to_json中的哈希语法仅为Ruby 1.9。

在Ruby 1.9中,您可以说:h = {key: 1} 在Ruby 1.8中,您必须使用h = {:key => 1}

答案 1 :(得分:0)

任性的“.”就在这个

的开头

.page(params[:page]).per(params[:per_page])

@product_properties = @product.product_properties.ransack(params[:q]).result + .page(params[:page]).per(params[:per_page])

就像它在错误消息开头所说的那样。