ruby-on-rails - Faraday::ConnectionFailed in Devise::SessionsController#create

标签 ruby-on-rails

我的应用程序工作正常,直到几分钟前,我收到以下错误:

Faraday::ConnectionFailed in Devise::SessionsController#create
Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200)

我尝试搜索,发现这可能与 Elasticsearch 有关。所以我做了以下事情:

$ curl localhost:9200
curl: (7) Failed to connect to localhost port 9200: Connection refused

$ brew services start elasticsearch
Service `elasticsearch` already started, use `brew services restart elasticsearch` to restart.

什么都没有改变,它仍然不起作用。

我猜这个问题可能有多个根源。有人知道如何调查和解决这个问题吗? 应用程序的其余部分运行良好,但与模型中的 searchkick 相关的所有内容都会产生该问题。

下面是来自控制台的日志:

Processing by Devise::SessionsController#destroy as HTML
Parameters: {"authenticity_token"=>"uaT1nvIHefWongRLepHPoXy5h5gihEh+0ymBaujsenamdkis/lRiB2Yhnsbnr6xkmDPRwJDURXvV9NSm8A==", "locale"=>"en"}
User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", "2c99733a-4ae0-42f8-97ba-9e4287d7c1cf"], ["LIMIT", 1]]
(0.2ms)  BEGIN
           ActsAsTaggableOn::Tagging Load (0.4ms)  SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2  [["taggable_id", 2], ["taggable_type", "User"]]
           (0.2ms)  COMMIT

User Store (7.1ms)  {"id":"2c99893a-4ae0-47f8-97ba-9e4487d7c1cf","exception":["Faraday::ConnectionFailed","Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for \"localhost\" port 9200)"],"exception_object":"Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for \"localhost\" port 9200)"}
Completed 500 Internal Server Error in 16ms (Searchkick: 7.1ms | ActiveRecord: 1.2ms)



Faraday::ConnectionFailed (Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200)):

    /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:939:in `rescue in block in connect'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:936:in `block in connect'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/timeout.rb:93:in `block in timeout'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/timeout.rb:103:in `timeout'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:935:in `connect'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:920:in `do_start'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:909:in `start'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:1455:in `request'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:87:in `perform_request'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:43:in `block in call'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:92:in `with_net_http_connection'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:38:in `call'
searchkick (3.1.2) lib/searchkick/middleware.rb:9:in `call'
faraday (0.15.4) lib/faraday/rack_builder.rb:143:in `build_response'
faraday (0.15.4) lib/faraday/connection.rb:387:in `run_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/transport/http/faraday.rb:23:in `block in perform_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/transport/base.rb:266:in `perform_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/client.rb:143:in `perform_request'
elasticsearch-api (6.2.0) lib/elasticsearch/api/actions/bulk.rb:85:in `bulk'
searchkick (3.1.2) lib/searchkick/indexer.rb:18:in `perform'
searchkick (3.1.2) lib/searchkick/logging.rb:126:in `perform'
searchkick (3.1.2) lib/searchkick/indexer.rb:11:in `queue'
searchkick (3.1.2) lib/searchkick/bulk_indexer.rb:43:in `bulk_index'
searchkick (3.1.2) lib/searchkick/index.rb:125:in `store'
searchkick (3.1.2) lib/searchkick/logging.rb:28:in `block in store'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `block in instrument'
activesupport (5.1.6.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `instrument'
searchkick (3.1.2) lib/searchkick/logging.rb:27:in `store'
searchkick (3.1.2) lib/searchkick/record_indexer.rb:74:in `reindex_record'
searchkick (3.1.2) lib/searchkick/record_indexer.rb:51:in `reindex'
searchkick (3.1.2) lib/searchkick/model.rb:78:in `reindex'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:413:in `block in make_lambda'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:260:in `block in conditional'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:511:in `block in invoke_after'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:511:in `each'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:511:in `invoke_after'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:132:in `run_callbacks'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:827:in `_run_commit_callbacks'
activerecord (5.1.6.2) lib/active_record/transactions.rb:343:in `committed!'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:86:in `commit_records'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:178:in `block in commit_transaction'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:168:in `commit_transaction'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:207:in `block in within_new_transaction'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:191:in `within_new_transaction'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/database_statements.rb:235:in `transaction'
activerecord (5.1.6.2) lib/active_record/transactions.rb:210:in `transaction'
activerecord (5.1.6.2) lib/active_record/transactions.rb:381:in `with_transaction_returning_status'
activerecord (5.1.6.2) lib/active_record/transactions.rb:308:in `block in save'
activerecord (5.1.6.2) lib/active_record/transactions.rb:323:in `rollback_active_record_state!'
activerecord (5.1.6.2) lib/active_record/transactions.rb:307:in `save'
activerecord (5.1.6.2) lib/active_record/suppressor.rb:42:in `save'
devise (4.6.1) lib/devise/models/rememberable.rb:62:in `forget_me!'
devise (4.6.1) lib/devise/controllers/rememberable.rb:32:in `forget_me'
devise (4.6.1) lib/devise/hooks/forgetable.rb:9:in `block in <top (required)>'
warden (1.2.8) lib/warden/hooks.rb:15:in `block in _run_callbacks'
warden (1.2.8) lib/warden/hooks.rb:10:in `each'
warden (1.2.8) lib/warden/hooks.rb:10:in `_run_callbacks'
warden (1.2.8) lib/warden/manager.rb:52:in `_run_callbacks'
warden (1.2.8) lib/warden/proxy.rb:274:in `block in logout'
warden (1.2.8) lib/warden/proxy.rb:272:in `each'
warden (1.2.8) lib/warden/proxy.rb:272:in `logout'
devise (4.6.1) lib/devise/controllers/sign_in_out.rb:98:in `sign_out_all_scopes'
devise (4.6.1) lib/devise/controllers/sign_in_out.rb:81:in `sign_out'
devise (4.6.1) app/controllers/devise/sessions_controller.rb:28:in `destroy'
actionpack (5.1.6.2) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
actionpack (5.1.6.2) lib/abstract_controller/base.rb:186:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (5.1.6.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:131:in `run_callbacks'
actionpack (5.1.6.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/rescue.rb:20:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `block in instrument'
activesupport (5.1.6.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `instrument'
actionpack (5.1.6.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
searchkick (3.1.2) lib/searchkick/logging.rb:209:in `process_action'
activerecord (5.1.6.2) lib/active_record/railties/controller_runtime.rb:22:in `process_action'
actionpack (5.1.6.2) lib/abstract_controller/base.rb:124:in `process'
actionview (5.1.6.2) lib/action_view/rendering.rb:30:in `process'
actionpack (5.1.6.2) lib/action_controller/metal.rb:189:in `dispatch'
actionpack (5.1.6.2) lib/action_controller/metal.rb:253:in `dispatch'
actionpack (5.1.6.2) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (5.1.6.2) lib/action_dispatch/routing/route_set.rb:31:in `serve'
actionpack (5.1.6.2) lib/action_dispatch/routing/mapper.rb:16:in `block in <class:Constraints>'
actionpack (5.1.6.2) lib/action_dispatch/routing/mapper.rb:46:in `serve'
actionpack (5.1.6.2) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (5.1.6.2) lib/action_dispatch/journey/router.rb:33:in `each'
actionpack (5.1.6.2) lib/action_dispatch/journey/router.rb:33:in `serve'
actionpack (5.1.6.2) lib/action_dispatch/routing/route_set.rb:844:in `call'
warden (1.2.8) lib/warden/manager.rb:36:in `block in call'
warden (1.2.8) lib/warden/manager.rb:34:in `catch'
warden (1.2.8) lib/warden/manager.rb:34:in `call'
rack (2.0.6) lib/rack/etag.rb:25:in `call'
rack (2.0.6) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.6) lib/rack/head.rb:12:in `call'
rack (2.0.6) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.6) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.1.6.2) lib/active_record/migration.rb:556:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:97:in `run_callbacks'
actionpack (5.1.6.2) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
rollbar (2.19.2) lib/rollbar/middleware/rails/rollbar.rb:24:in `block in call'
rollbar (2.19.2) lib/rollbar.rb:146:in `scoped'
rollbar (2.19.2) lib/rollbar/middleware/rails/rollbar.rb:22:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
rollbar (2.19.2) lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.1.6.2) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.1.6.2) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.1.6.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.1.6.2) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.1.6.2) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.1.6.2) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
request_store (1.4.1) lib/request_store/middleware.rb:19:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/request_id.rb:25:in `call'
rack (2.0.6) lib/rack/method_override.rb:22:in `call'
rack (2.0.6) lib/rack/runtime.rb:22:in `call'
activesupport (5.1.6.2) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/static.rb:125:in `call'
rack (2.0.6) lib/rack/sendfile.rb:111:in `call'
railties (5.1.6.2) lib/rails/engine.rb:522:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'

我刚刚尝试重新索引表:

2.5.3 :001 > Event.reindex
Traceback (most recent call last):
        1: from (irb):1
Faraday::ConnectionFailed (Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200))

刚刚搜索了一下,发现可能和内存有关。不知道如何检查它,而且应用程序在 Heroku 上运行得非常好,所以问题是本地的,但我需要确定修复它。

(编辑问题) 我刚刚从终端运行 elasticsearch,它返回以下内容:

$ elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file logs/gc.log due to No such file or directory

[2019-05-07T11:41:56,649][WARN ][o.e.c.l.LogConfigurator  ] [unknown] Some logging configurations have %marker but don't have %node_name. We will automatically add %node_name to the pattern to ease the migration for users who customize log4j2.properties but will stop this behavior in 7.0. You should manually replace `%node_name` with `[%node_name]%marker ` in these locations:
  /usr/local/etc/elasticsearch/log4j2.properties
[2019-05-07T11:41:57,948][INFO ][o.e.e.NodeEnvironment    ] [Uqr3VHG] using [1] data paths, mounts [[/ (/dev/disk1)]], net usable_space [386.7gb], net total_space [464.6gb], types [hfs]
[2019-05-07T11:41:57,948][INFO ][o.e.e.NodeEnvironment    ] [Uqr3VHG] heap size [990.7mb], compressed ordinary object pointers [true]
[2019-05-07T11:41:58,748][INFO ][o.e.n.Node               ] [Uqr3VHG] node name derived from node ID [Uqr3VHGpQTmcyJav-f-6RQ]; set [node.name] to override
[2019-05-07T11:41:58,748][INFO ][o.e.n.Node               ] [Uqr3VHG] version[6.7.0], pid[29217], build[oss/tar/8453f77/2019-03-21T15:32:29.844721Z], OS[Mac OS X/10.13.6/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_192/25.192-b12]
[2019-05-07T11:41:58,749][INFO ][o.e.n.Node               ] [Uqr3VHG] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/var/folders/c_/cqbnlqbx5lq7vjgf31_wsgvh0000gp/T/elasticsearch-6333526767767413674, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/usr/local/Cellar/elasticsearch/6.7.0/libexec, -Des.path.conf=/usr/local/etc/elasticsearch, -Des.distribution.flavor=oss, -Des.distribution.type=tar]
[2019-05-07T11:42:01,279][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [aggs-matrix-stats]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [analysis-common]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [ingest-common]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [ingest-geoip]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [ingest-user-agent]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [lang-expression]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [lang-mustache]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [lang-painless]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [mapper-extras]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [parent-join]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [percolator]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [rank-eval]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [reindex]
[2019-05-07T11:42:01,282][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [repository-url]
[2019-05-07T11:42:01,282][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [transport-netty4]
[2019-05-07T11:42:01,282][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] loaded module [tribe]
[2019-05-07T11:42:01,283][INFO ][o.e.p.PluginsService     ] [Uqr3VHG] no plugins loaded
[2019-05-07T11:42:08,927][INFO ][o.e.d.DiscoveryModule    ] [Uqr3VHG] using discovery type [zen] and host providers [settings]
[2019-05-07T11:42:09,753][INFO ][o.e.n.Node               ] [Uqr3VHG] initialized
[2019-05-07T11:42:09,753][INFO ][o.e.n.Node               ] [Uqr3VHG] starting ...
[2019-05-07T11:42:10,495][INFO ][o.e.t.TransportService   ] [Uqr3VHG] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
ERROR: Cluster name [elasticsearch_etiennelandro] subdirectory exists in data paths [/usr/local/var/lib/elasticsearch/elasticsearch_etiennelandro]. All data under these paths must be moved up one directory to paths [/usr/local/var/lib/elasticsearch]
[2019-05-07T11:42:10,561][INFO ][o.e.n.Node               ] [Uqr3VHG] stopping ...
[2019-05-07T11:42:10,589][INFO ][o.e.n.Node               ] [Uqr3VHG] stopped
[2019-05-07T11:42:10,590][INFO ][o.e.n.Node               ] [Uqr3VHG] closing ...
[2019-05-07T11:42:10,614][INFO ][o.e.n.Node               ] [Uqr3VHG] closed

附加信息: 当我从模型中删除 searchick world_middle: [:first_name] 并重新启动服务器时,用户可以毫无问题地登录。

最佳答案

当您运行elasticsearch时,您会收到以下错误

ERROR: Cluster name [elasticsearch_etiennelandro] subdirectory exists in data paths [/usr/local/var/lib/elasticsearch/elasticsearch_etiennelandro]. All data under these paths must be moved up one directory to paths [/usr/local/var/lib/elasticsearch]

xeraa 中所述在 this post

Did you have an older version (2.x or before) installed before? It sounds a lot like this PR to check that you're not using the old behavior when there was the node name in the path.

What I would do:

  • If you don't need the data any more, just remove /usr/local/var/lib/elasticsearch/elasticsearch_nikitavlasenko and start fresh.

  • If you need the data, you could either change path.data in your config or move the folder one level up (just like the log message says).

PS: I wouldn't use port 9300 for HTTP, because that's generally the port used for communication of the nodes in a cluster itself.

还可以考虑阅读该页面上的评论和相关帖子,例如 Franz Kafka 中的评论和相关帖子。

Turns out that the config file points to /usr/local/var/lib/elasticsearch for the data path, but the package creates the directory /usr/local/var/lib/elasticsearch/elasticsearch_USERNAME. Since that elasticsearch_USERNAME directory is in there, it fails to start. I resolved the error by simply removing the elasticsearch_USERNAME directory as you suggested.

该错误会导致本应在 localhost:9200 上运行的 elastichsearch 服务器崩溃

关于ruby-on-rails - Faraday::ConnectionFailed in Devise::SessionsController#create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55988640/

相关文章:

ruby-on-rails - 在 Rails View 中测试客户端验证

ruby-on-rails - 无法在 Chrome 移动设备上输入表单数据

ruby-on-rails - 如何在 Rails 中实现删除您的帖子而不是其他用户帖子

ruby-on-rails - 通过 2 个不同的关联模型进行 Rails 查询

javascript - 模型在 Ember 中解析后,从路线触发 Controller 上的操作

ruby-on-rails - 避免 Rails 多表查询中的 N+1 查询

javascript - RoR如何通过javascript函数在参数中传递应用程序ID

ruby-on-rails - 使用 Rails 5 和 acts-as-taggable-on 4 时无法运行 rspec

ruby-on-rails - rails - 禁用选择标签

ruby-on-rails - 如何在 mongoid 中使用 AND 条件进行查询