Eruby API调用数组显示[#,#]而不是数字
我试图使用HomeAwayAPI在html页面上显示一些数据 我的搜索结果文件如下所示 价格范围=[#,#,#],而不是我想要的3个价格 我在网上查过转换为整数的方法,但那没有用。我只是想知道这个数字是否被服务器保留了/我的堆栈/代码有问题,因为我诚实地搜索了几个小时,什么也没找到 这是我的密码 搜索结果Eruby API调用数组显示[#,#]而不是数字,ruby,eruby,Ruby,Eruby,我试图使用HomeAwayAPI在html页面上显示一些数据 我的搜索结果文件如下所示 价格范围=[#,#,#],而不是我想要的3个价格 我在网上查过转换为整数的方法,但那没有用。我只是想知道这个数字是否被服务器保留了/我的堆栈/代码有问题,因为我诚实地搜索了几个小时,什么也没找到 这是我的密码 搜索结果 <html> <head> <title>Search results for <%= "#{session[:me].first_nam
<html>
<head>
<title>Search results for <%= "#{session[:me].first_name} #{session[:me].last_name}" %></title>
</head>
<body>
<h3>Search results for <%= "#{session[:me].first_name} # {session[:me].last_name}" %></h3>
<br/>
<% end %></p>
<p>Here are your search results:
<ul>
<% @search_results.each do |result| %>
<li>
<% if result.has?(:thumbnail) %>
<img src="<%= result.thumbnail.secureUri %>"/>
<% end %>
<p><%= result %></p>
<p>Price Range: <% a = result.priceRanges.to_a
b = a.at(1).to_i
%></p>
<p><%= "#{b}" %>
<p>Bedrooms: <%= result.bedrooms %></p>
<p>Bathrooms: <%= result.bathrooms %></p>
<p>Amount: <% puts result.amount %> <% result.currency %></p>
<a href="/listing/<%= result.listingId %>"><%= result.headline %></a>
<a href="<%=result.listingUrl %>">View on Homeaway</a>
<p><%= result.Latitude %></p>
<p><%= result.displayLongitude %></p> </li>
<% end %>
</ul>
<br/><br/>
<a href="/">go back</a>
</body>
</html>
搜索结果
搜索结果
以下是您的搜索结果:
-
"/>
价格范围:
卧室:
浴室:
金额:
位于后端的另一个文件
require 'homeaway_api'
require 'sinatra/base'
require 'webrick'
require 'webrick/https'
require 'openssl'
require 'pp'
class HomeAwayApiTutorial < Sinatra::Base
def create_client
client_id = 'personal id'
client_secret = 'my secret'
HomeAway::API::Client.new :client_id => client_id, :client_secret => client_secret
end
enable :sessions
get '/' do
code = params[:code]
if session[:client].nil? && (code.nil? || code.empty?)
client = create_client
session[:client] = client
redirect to(client.auth_url)
else
client = session[:client]
client.oauth_code = code if code
session[:me] = client.me
@me = session[:me]
erb :index
end
end
get '/search' do
search_query = params[:q]
redirect to ('/') if session[:client].nil? || search_query.nil?
client = session[:client]
@search_results = client.search(q: search_query)
erb :search_results
end
get '/listing/:id' do |id|
redirect to ('/') if session[:client].nil? || id.nil? || id.empty?
client = session[:client]
@listing = client.listing(id, %w(AVAILABILITY DETAILS LOCATION PHOTOS RATES REVIEWS))
erb :listing_details
end
get '/quote' do
search_query = params[:q]
redirect to ('/') if session[:client].nil? || search_query.nil?
client = session[:client]
listing_id = params[:listing_id]
adults_count = params[:adults_count]
start_date = params[:start_date]
end_date = params[:end_date]
listing = client.listing(listing_id)
unit_id = listing.units.first.unitNumber
erb :quote_results
end
get '/bookIt' do
redirect to ('/') if session[:client].nil?
client = session[:client]
listing_id = params[:listing_id]
priceRanges = params[:priceRanges]
displayLatitude = params[:displayLatitude]
displayLongitude = params[:displayLongitude]
adults_count = params[:adults_count]
start_date = params[:start_date]
end_date = params[:end_date]
listing = client.listing(listing_id)
unit_id = listing.units.first.unitNumber
book_stay = client.book_stay(listing_id, unit_id, adults_count.to_i, start_date, end_date)
halt 404, "property not available to book" unless book_stay.booking_url
redirect to(book_stay.booking_url)
end
get '/writeReview/:listing_id' do |listing_id|
redirect to ('/') if session[:client].nil?
client = session[:client]
@listing = client.listing(listing_id, 'DETAILS')
erb :write_review
end
post '/submitReview' do
redirect to ('/') if session[:client].nil?
client = session[:client]
listing_id = params[:listing_id]
arrival_date = params[:arrival_date]
rating = params[:rating]
headline = params[:headline]
body = params[:body]
listing = client.listing(listing_id)
unit_id = listing.units.first.unitNumber
client.submit_review(headline, body, 'en', arrival_date, rating, listing_id, unit_id)
redirect to ("/listing/#{listing_id}")
end
end
webrick_options = {
:Port => 4567,
:BindAddress => '127.0.0.1',
:Logger => WEBrick::Log::new($stderr, WEBrick::Log::DEBUG),
:DocumentRoot => "/ruby/htdocs",
:SSLEnable => true,
:SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
:SSLCertificate => OpenSSL::X509::Certificate.new(File.open('localhost.crt').read),
:SSLPrivateKey => OpenSSL::PKey::RSA.new(File.open('localhost.key').read),
:SSLCertName => [["CN", WEBrick::Utils::getservername]],
:app => HomeAwayApiTutorial
}
Rack::Server.start webrick_options
需要“homeaway\u api”
需要“sinatra/基地”
需要“webrick”
需要“webrick/https”
需要“openssl”
需要“pp”
类HomeAwayApiTutorialClient\u id,:Client\u secret=>Client\u secret
结束
启用:会话
获取“/”do
代码=参数[:代码]
如果会话[:client].nil?&(code.nil?| | code.empty?)
客户端=创建\u客户端
会话[:客户端]=客户端
重定向到(client.auth_url)
其他的
客户端=会话[:客户端]
client.oauth_code=code if code
会话[:me]=client.me
@me=会话[:me]
雇员再培训局:索引
结束
结束
获取“/search”do
搜索\查询=参数[:q]
如果会话[:client],则重定向到(“/”).nil?| | search_query.nil?
客户端=会话[:客户端]
@search\u results=client.search(q:search\u query)
雇员再培训局:搜索结果
结束
获取“/listing/:id”do | id|
如果会话[:client].nil?| | id.nil?| | id.empty,则重定向到(“/”)?
客户端=会话[:客户端]
@列表=客户端。列表(id,%w(可用性详细信息位置照片价格审查))
雇员再培训局:名单详情
结束
获取“/quote”do
搜索\查询=参数[:q]
如果会话[:client],则重定向到(“/”).nil?| | search_query.nil?
客户端=会话[:客户端]
listing_id=params[:listing_id]
成人计数=参数[:成人计数]
开始日期=参数[:开始日期]
结束日期=参数[:结束日期]
listing=client.listing(listing\u id)
unit_id=listing.units.first.unitNumber
雇员再培训局:引述调查结果
结束
获取“/bookIt”do
如果会话[:客户端],则重定向到(“/”)。是否为零?
客户端=会话[:客户端]
listing_id=params[:listing_id]
priceRanges=参数[:priceRanges]
displayLatitude=参数[:displayLatitude]
显示经度=参数[:显示经度]
成人计数=参数[:成人计数]
开始日期=参数[:开始日期]
结束日期=参数[:结束日期]
listing=client.listing(listing\u id)
unit_id=listing.units.first.unitNumber
book\u stay=客户。book\u stay(列出\u id、单位id、成人人数、开始日期、结束日期)
暂停404,“酒店不可预订”,除非book\u stay.booking\u url
重定向到(预订住宿.预订url)
结束
获取“/writeReview/:listing_id”do | listing_id|
如果会话[:客户端],则重定向到(“/”)。是否为零?
客户端=会话[:客户端]
@listing=client.listing(清单\u id,'DETAILS')
雇员再培训局:书面审查
结束
发布“/submitReview”do
如果会话[:客户端],则重定向到(“/”)。是否为零?
客户端=会话[:客户端]
listing_id=params[:listing_id]
到达日期=参数[:到达日期]
额定值=参数[:额定值]
headline=参数[:headline]
body=参数[:body]
listing=client.listing(listing\u id)
unit_id=listing.units.first.unitNumber
客户。提交审查(标题、正文、“en”、到达日期、评级、清单编号、单位编号)
重定向到(“/listing/#{listing_id}”)
结束
结束
webrick_选项={
:端口=>4567,
:BindAddress=>'127.0.0.1',
:Logger=>WEBrick::Log::new($stderr,WEBrick::Log::DEBUG),
:DocumentRoot=>“/ruby/htdocs”,
:SSLEnable=>true,
:SSLVerifyClient=>OpenSSL::SSL::VERIFY\u NONE,
:SSLCertificate=>OpenSSL::X509::Certificate.new(File.open('localhost.crt').read),
:SSLPrivateKey=>OpenSSL::PKey::RSA.new(File.open('localhost.key').read),
:SSLCertName=>[[“CN”,WEBrick::Utils::getservername]],
:app=>HomeAwayApiTutorial
}
机架::服务器。启动webrick\u选项
我们刚刚添加的第一个处理程序将服务于reqpriceRanges的值是多少?我不知道,API文档说它是一个列表而不是一个字符串。但我不确定该怎么办,我搜索了convert list to string ruby,但没有找到任何结果。你认为如何?尝试执行类似于
的操作。它应该打印一个更可读的报告对象的语句。然后回来编辑你的问题,包括打印的内容。酷,我得到类似[{“currencyUnits”=>“GBP”,“from”=>130.0,“periodType”=>“NIGHTLY-WEEKDAY”,“to”=>130.0},{“currencyUnits”=>“GBP”,“from”=>800.0,“periodType”=>“WEEKLY”,“to”=>800.0},{“currencyUnits”=>“GBP”,“from”=>2499.9866,“periodType”“=>MONTHLY”,“to”=>2499.9866}]如何选择第一个(from)元素