服务器在 Rails Ruby 中的本地主机上不可用,响应代码为 403 & RuntimeError
Server not available on localhost with response code 403 & RuntimeError in Ruby on Rails
在 open_uri.rb 和 server_manage.rb 中更改代理设置后,我终于设法在代理服务器后面安装了 neo4j。 Neo4j 服务器在端口 7000 上 运行(它在浏览器中打开)但是当我输入时:
$rails generate scaffold post title body
错误:
/.rvm/gems/ruby-2.2.3/gems/neo4j-core-5.1.6/lib/neo4j-server/cypher_session.rb:51:in `open': Server not available on http://localhost:7000 (response code 403) (RuntimeError)
我该怎么办?
感谢您的帮助!!
$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
$ rails --version
Rails 4.2.2
403 可能意味着您的 Neo4j 身份验证凭据有误。有关详细信息,请参阅 http://neo4jrb.readthedocs.org/en/5.1.x/Setup.html#rails-configuration,但基本上,将类似这样的内容添加到 application.rb
可能会成功:
config.neo4j.session_options = { basic_auth: { username: 'foo', password: 'bar'} }
此外,由于您提到需要有关代理的帮助,您可以添加一个 initialize
键来设置它。
init = { proxy: { uri: 'http://myproxy', user: 'username', password: 'password' }}
auth = { username: 'neo4j', password: 'pwhere'}
config.neo4j.session_options = { basic_auth: auth, initialize: init }
我的猜测 - 代理问题。您的浏览器和代码中的行为可能有所不同(因为它们是 2 个不同的环境)。
要检查您的数据库到底发生了什么,您应该尝试从命令行手动向 Neo4j 发出请求。
使用 curl
的示例:
# if auth enabled
curl -i --user username:password http://localhost:7000/db/data/
# if auth disabled
curl -i http://localhost:7000/db/data/
这将为您提供更多关于究竟是什么不起作用的详细信息。
您还可以 assemble 基本的 ruby 脚本,它将发出 HTTP 请求,以检查您在这种情况下收到的响应。
在 open_uri.rb 和 server_manage.rb 中更改代理设置后,我终于设法在代理服务器后面安装了 neo4j。 Neo4j 服务器在端口 7000 上 运行(它在浏览器中打开)但是当我输入时:
$rails generate scaffold post title body
错误:
/.rvm/gems/ruby-2.2.3/gems/neo4j-core-5.1.6/lib/neo4j-server/cypher_session.rb:51:in `open': Server not available on http://localhost:7000 (response code 403) (RuntimeError)
我该怎么办? 感谢您的帮助!!
$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
$ rails --version
Rails 4.2.2
403 可能意味着您的 Neo4j 身份验证凭据有误。有关详细信息,请参阅 http://neo4jrb.readthedocs.org/en/5.1.x/Setup.html#rails-configuration,但基本上,将类似这样的内容添加到 application.rb
可能会成功:
config.neo4j.session_options = { basic_auth: { username: 'foo', password: 'bar'} }
此外,由于您提到需要有关代理的帮助,您可以添加一个 initialize
键来设置它。
init = { proxy: { uri: 'http://myproxy', user: 'username', password: 'password' }}
auth = { username: 'neo4j', password: 'pwhere'}
config.neo4j.session_options = { basic_auth: auth, initialize: init }
我的猜测 - 代理问题。您的浏览器和代码中的行为可能有所不同(因为它们是 2 个不同的环境)。
要检查您的数据库到底发生了什么,您应该尝试从命令行手动向 Neo4j 发出请求。
使用 curl
的示例:
# if auth enabled
curl -i --user username:password http://localhost:7000/db/data/
# if auth disabled
curl -i http://localhost:7000/db/data/
这将为您提供更多关于究竟是什么不起作用的详细信息。
您还可以 assemble 基本的 ruby 脚本,它将发出 HTTP 请求,以检查您在这种情况下收到的响应。