【问题标题】:#<Faraday::ConnectionFailed> Connection refused - connect(2)#<Faraday::ConnectionFailed> 连接被拒绝 - 连接 (2)
【发布时间】:2014-08-03 04:18:47
【问题描述】:

在使用复选框选择users/edit.html.erb 中的项目并按下保存后,我收到了消息#&lt;Faraday::ConnectionFailed&gt; Connection refused - connect(2)。我选择的项目在一个名为amenities_list 的数组中。这些项目是布尔值。在尝试保存我收到的更改后 #&lt;Faraday::ConnectionFailed&gt;.

用户/edit.html.erb

<div class="tab-content group">

  <% amenities_list = User.amenities_list %>

  <ul>
    <% @user.boolean_array_from_amenities_integer.each_with_index do |amenity_available,index| %>
      <% if amenity_available %>
        <li class="available-amenity">
      <% else %>
        <li class="unavailable-amenity">
      <% end %>
          <%= amenities_list[index] %>
        </li>
    <% end %>
  </ul>
</div>

users_controller.rb

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    @user.id = current_user.id
    @user.set_amenities_from_options_list!(params[:user_amenities_indicies])
    if @user.save
      flash[:success] = "Thank you for signing up! A confirmation email has been sent to your inbox"
      redirect_to users_path
    else
      render :new
    end
  end

  def edit
    @user.id = current_user.id
    @user.set_amenities_from_options_list!(params[:user_amenities_indicies])
  end

用户.rb

  def self.amenities_list
    ["Smoking Allowed",
     "Pets Allowed",
     "TV",
     "Cable TV",
     "Internet",
     "Wireless Internet",
     "Air Conditioning",
     "Heating",
     "Elevator in Building",
     "Handicap Accessible",
     "Pool",
     "Kitchen",
     "Free parking on premise",
     "Doorman",
     "Gym",
     "Hot Tub",
     "Indoor Fireplace",
     "Buzzer/Wireless Intercom",
     "Breakfast",
     "Family/Kid Friendly",
     "Suitable for Events",
     "Washer",
     "Dryer"]
  end

  def self.integer_from_options_list(options_list)
    # convert options list given by radio buttons into one-hot integer
    amenities = 0;
    if options_list
      options_list.each do |option|
        amenities += 2 ** option.to_i
      end
  end

    amenities
  end

   def self.find_with_filters(filters)
    filtered_users = User
        if filters[:amenities]
          amenities = User.integer_from_options_list(filters[:amenities])
          filtered_users = filtered_users.where("amenities & ? = ?", amenities, amenities)
        end
    end


 def set_amenities_from_options_list!(options_list)
    self.amenities = User.integer_from_options_list(options_list)
  end

    def boolean_array_from_amenities_integer
    [].tap do |amenities_list|
      User.amenities_list.length.times do |order|
        amenities_list << (self.amenities & 2 ** order > 0)
        end
      end
    end

end

gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.0.3)
      actionpack (= 4.0.3)
      mail (~> 2.5.4)
    actionpack (4.0.3)
      activesupport (= 4.0.3)
      builder (~> 3.1.0)
      erubis (~> 2.7.0)
      rack (~> 1.5.2)
      rack-test (~> 0.6.2)
    activemodel (4.0.3)
      activesupport (= 4.0.3)
      builder (~> 3.1.0)
    activerecord (4.0.3)
      activemodel (= 4.0.3)
      activerecord-deprecated_finders (~> 1.0.2)
      activesupport (= 4.0.3)
      arel (~> 4.0.0)
    activerecord-deprecated_finders (1.0.3)
    activesupport (4.0.3)
      i18n (~> 0.6, >= 0.6.4)
      minitest (~> 4.2)
      multi_json (~> 1.3)
      thread_safe (~> 0.1)
      tzinfo (~> 0.3.37)
    arel (4.0.2)
    atomic (1.1.16)
    bcrypt (3.1.7)
    bcrypt-ruby (3.1.5)
      bcrypt (>= 3.1.3)
    bootstrap-sass (3.1.1.0)
      sass (~> 3.2)
    builder (3.1.4)
    capybara (2.1.0)
      mime-types (>= 1.16)
      nokogiri (>= 1.3.3)
      rack (>= 1.0.0)
      rack-test (>= 0.5.4)
      xpath (~> 2.0)
    carrierwave (0.10.0)
      activemodel (>= 3.2.0)
      activesupport (>= 3.2.0)
      json (>= 1.7)
      mime-types (>= 1.16)
    childprocess (0.5.1)
      ffi (~> 1.0, >= 1.0.11)
    coderay (1.1.0)
    coffee-rails (4.0.1)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0, < 5.0)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.7.0)
    columnize (0.3.6)
    debugger (1.6.6)
      columnize (>= 0.3.1)
      debugger-linecache (~> 1.2.0)
      debugger-ruby_core_source (~> 1.3.2)
    debugger-linecache (1.2.0)
    debugger-ruby_core_source (1.3.2)
    diff-lcs (1.2.5)
    elasticsearch (1.0.2)
      elasticsearch-api (= 1.0.2)
      elasticsearch-transport (= 1.0.2)
    elasticsearch-api (1.0.2)
      multi_json
    elasticsearch-model (0.1.4)
      activesupport (> 3)
      elasticsearch (> 0.4)
      hashie
    elasticsearch-transport (1.0.2)
      faraday
      multi_json
    erubis (2.7.0)
    execjs (2.0.2)
    factory_girl (4.2.0)
      activesupport (>= 3.0.0)
    factory_girl_rails (4.2.1)
      factory_girl (~> 4.2.0)
      railties (>= 3.0.0)
    faker (1.3.0)
      i18n (~> 0.5)
    faraday (0.9.0)
      multipart-post (>= 1.2, < 3)
    ffi (1.9.3)
    figaro (0.7.0)
      bundler (~> 1.0)
      rails (>= 3, < 5)
    geocoder (1.1.9)
    hashie (3.0.0)
    hike (1.2.3)
    i18n (0.6.9)
    jbuilder (1.5.3)
      activesupport (>= 3.0.0)
      multi_json (>= 1.2.0)
    jquery-rails (3.1.0)
      railties (>= 3.0, < 5.0)
      thor (>= 0.14, < 2.0)
    jquery-ui-rails (4.2.0)
      railties (>= 3.2.16)
    json (1.8.1)
    jwt (0.1.11)
      multi_json (>= 1.5)
    mail (2.5.4)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    method_source (0.8.2)
    mime-types (1.25.1)
    mini_magick (3.7.0)
      subexec (~> 0.2.1)
    mini_portile (0.5.2)
    minitest (4.7.5)
    multi_json (1.9.0)
    multi_xml (0.5.5)
    multipart-post (2.0.0)
    nokogiri (1.6.1)
      mini_portile (~> 0.5.0)
    oauth (0.4.7)
    oauth2 (0.9.3)
      faraday (>= 0.8, < 0.10)
      jwt (~> 0.1.8)
      multi_json (~> 1.3)
      multi_xml (~> 0.5)
      rack (~> 1.2)
    pg (0.17.1)
    polyglot (0.3.4)
    pry (0.9.12.6)
      coderay (~> 1.0)
      method_source (~> 0.8)
      slop (~> 3.4)
    pry-debugger (0.2.2)
      debugger (~> 1.3)
      pry (~> 0.9.10)
    quiet_assets (1.0.2)
      railties (>= 3.1, < 5.0)
    rack (1.5.2)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.0.3)
      actionmailer (= 4.0.3)
      actionpack (= 4.0.3)
      activerecord (= 4.0.3)
      activesupport (= 4.0.3)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.0.3)
      sprockets-rails (~> 2.0.0)
    rails_12factor (0.0.2)
      rails_serve_static_assets
      rails_stdout_logging
    rails_serve_static_assets (0.0.2)
    rails_stdout_logging (0.0.3)
    railties (4.0.3)
      actionpack (= 4.0.3)
      activesupport (= 4.0.3)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.1.1)
    rdoc (4.1.1)
      json (~> 1.4)
    rspec-core (2.13.1)
    rspec-expectations (2.13.0)
      diff-lcs (>= 1.1.3, < 2.0)
    rspec-mocks (2.13.1)
    rspec-rails (2.13.1)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      railties (>= 3.0)
      rspec-core (~> 2.13.0)
      rspec-expectations (~> 2.13.0)
      rspec-mocks (~> 2.13.0)
    rubyzip (0.9.9)
    sass (3.2.15)
    sass-rails (4.0.2)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.2.0)
      sprockets (~> 2.8, <= 2.11.0)
      sprockets-rails (~> 2.0.0)
    sdoc (0.4.0)
      json (~> 1.8)
      rdoc (~> 4.0, < 5.0)
    selenium-webdriver (2.35.1)
      childprocess (>= 0.2.5)
      multi_json (~> 1.0)
      rubyzip (< 1.0.0)
      websocket (~> 1.0.4)
    simple_form (3.0.1)
      actionpack (>= 4.0.0, < 4.1)
      activemodel (>= 4.0.0, < 4.1)
    slop (3.5.0)
    sorcery (0.8.5)
      bcrypt-ruby (>= 3.0)
      oauth (~> 0.4.4)
      oauth2 (>= 0.8.0, < 1.0.0)
    sprockets (2.11.0)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (2.0.1)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      sprockets (~> 2.8)
    state_machine (1.2.0)
    subexec (0.2.3)
    thor (0.18.1)
    thread_safe (0.2.0)
      atomic (>= 1.1.7, < 2)
    tilt (1.4.1)
    treetop (1.4.15)
      polyglot
      polyglot (>= 0.3.1)
    tzinfo (0.3.39)
    uglifier (2.5.0)
      execjs (>= 0.3.0)
      json (>= 1.8.0)
    websocket (1.0.7)
    xpath (2.0.0)
      nokogiri (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  bootstrap-sass (~> 3.1.1)
  capybara (= 2.1.0)
  carrierwave
  coffee-rails (~> 4.0.0)
  elasticsearch-model
  factory_girl_rails (= 4.2.1)
  faker
  figaro
  geocoder
  jbuilder (~> 1.2)
  jquery-rails
  jquery-ui-rails
  mini_magick
  pg
  pry-debugger
  quiet_assets
  rails (= 4.0.3)
  rails_12factor
  rspec-rails (= 2.13.1)
  sass-rails (~> 4.0.0)
  sdoc
  selenium-webdriver (= 2.35.1)
  simple_form
  sorcery
  state_machine
  uglifier (>= 1.3.0)

【问题讨论】:

  • 您是否会在模型回调中对第 3 方服务执行底层 http 请求?
  • 不,事实并非如此
  • 您能否提供您的 Gemfile.lock 以查看哪些 gem 依赖于 Faraday?
  • 我在 Aggelos 上方添加了 Gemfile.lock
  • 如您所见,Faraday 是 elasticsearch-transport 和 oauth2 的一个部门。因此,其中之一使法拉第执行请求。也许您在模型回调中更新 Elasticsearch 中的某些内容?

标签: ruby-on-rails ruby faraday faraday-oauth


【解决方案1】:

如果消息#&lt;Faraday::ConnectionFailed&gt; Connection refused - connect(2) 后跟 Connection refused - connect(2) for "localhost" port 9200

然后使用命令确保弹性搜索服务是否正在运行

curl localhost:9200

通常,弹性搜索在端口9200 接收请求。如果未运行,则需要使用命令启动(在 Ubuntu 中) sudo service elasticsearch start。等待几秒钟,然后重试。

【讨论】:

  • 我有同样的问题,当我这样做时: $ curl localhost:9200 curl: (7) 无法连接到 localhost 端口 9200:连接被拒绝。 @Achilles77 找到解决方案了吗?
猜你喜欢
  • 2015-12-03
  • 1970-01-01
  • 2017-07-20
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多