【发布时间】:2014-08-03 04:18:47
【问题描述】:
在使用复选框选择users/edit.html.erb 中的项目并按下保存后,我收到了消息#<Faraday::ConnectionFailed> Connection refused - connect(2)。我选择的项目在一个名为amenities_list 的数组中。这些项目是布尔值。在尝试保存我收到的更改后 #<Faraday::ConnectionFailed>.
用户/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