gpt4 book ai didi

ruby-on-rails - shopify_app 语法错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:28 25 4
gpt4 key购买 nike

编辑:调试让我更进一步。问题已澄清。

我们已经安装了 Ruby、RubyGems 和 Rails,并 fork 了 shopify_app 项目。我们创建了一个新的 Rails 应用程序,并向 Gemfile 添加了三个项目:execjstherubyracershopify_app

运行 rails s 以启动我们的 rails 应用程序返回此跟踪:

root@ubuntu:/usr/local/pete-shopify/cart# rails s
Faraday: you may want to install system_timer for reliable timeouts
/var/lib/gems/1.8/gems/shopify_app-4.1.0/lib/shopify_app.rb:15:in `require': /var/lib /gems/1.8/gems/shopify_app-4.1.0/lib/shopify_app/login_protection.rb:5: syntax error, unexpected ':', expecting kEND (SyntaxError)
...rce::UnauthorizedAccess, with: :close_session
^
from /var/lib/gems/1.8/gems/shopify_app-4.1.0/lib/shopify_app.rb:15
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `require'
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `require'
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `each'
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `require'
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `each'
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `require'
from /var/lib/gems/1.8/gems/bundler-1.2.1/lib/bundler.rb:128:in `require'
from /usr/local/pete-shopify/cart/config/application.rb:7
from /var/lib/gems/1.8/gems/railties-3.2.8/lib/rails/commands.rb:53:in `require'
from /var/lib/gems/1.8/gems/railties-3.2.8/lib/rails/commands.rb:53
from /var/lib/gems/1.8/gems/railties-3.2.8/lib/rails/commands.rb:50:in `tap'
from /var/lib/gems/1.8/gems/railties-3.2.8/lib/rails/commands.rb:50
from script/rails:6:in `require'
from script/rails:6

自从从 Github fork 以来,我没有修改过任何文件。 login_protection.rb的第1-6行如下:

module ShopifyApp::LoginProtection
extend ActiveSupport::Concern

included do
rescue from ActiveResource::UnauthorizedAccess, with: :close_session
end

我已经调查过了,似乎错误是由 Ruby 1.8 和 1.9 之间的新型哈希语法引起的; key : value 而不是 key => value

从命令行运行 ruby -v 返回 ruby 1.9.3p0(2011-10-30 修订版 33570)[x86_64-linux]。这似乎没问题......但我做了一些调试,并在文件 /var/lib/gems/1.8/gems/shopify_app-4.1.0/lib/shopify_app.rb 中(位于顶部)通过把这个:

放 RUBY_VERSION退出

它打印了 1.8.7。 **为什么 ruby -vRUBY_VERSION 给我不同的结果?我假设这是我的问题的原因是否正确?

注意:为了升级 Ruby,我使用 apt-get 安装了更高版本,然后使用 update-alternatives --config ruby​​ 切换到它并选择选项 2,例如这个:

root@ubuntu:/usr/local/pete-shopify/cart# update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/ruby1.8 50 auto mode
1 /usr/bin/ruby1.8 50 manual mode
* 2 /usr/bin/ruby1.9.1 10 manual mode

另请注意:我们是 PHP/Python 开发人员,所以这对我们来说是全新的!

总结:

1 - 我确定语法错误的原因是否正确?

2 - 为什么 RUBY_VERSIONruby -v 给我不同的结果?

最佳答案

可能与您的权限有关。尝试使用 rbenv instead 安装 ruby​​ 1.9.3 .它会将所有内容安装在您的用户目录中,因此您不必担心任何权限问题。

关于ruby-on-rails - shopify_app 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com