0

在更改 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
4

2 回答 2

1

我的猜测 - 代理问题。在您的浏览器和代码中,事情的行为可能会有所不同(因为它们是 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/

这将为您提供有关究竟是什么不起作用的更多详细信息。

您还可以组装将发出 HTTP 请求的基本 ruby​​ 脚本,以检查在这种情况下您收到的响应内容。

于 2015-10-04T22:41:32.557 回答
0

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 }
于 2015-10-04T01:11:55.747 回答