Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eruby API调用数组显示[#,#]而不是数字_Ruby_Eruby - Fatal编程技术网

Eruby API调用数组显示[#,#]而不是数字

Eruby API调用数组显示[#,#]而不是数字,ruby,eruby,Ruby,Eruby,我试图使用HomeAwayAPI在html页面上显示一些数据 我的搜索结果文件如下所示 价格范围=[#,#,#],而不是我想要的3个价格 我在网上查过转换为整数的方法,但那没有用。我只是想知道这个数字是否被服务器保留了/我的堆栈/代码有问题,因为我诚实地搜索了几个小时,什么也没找到 这是我的密码 搜索结果 <html> <head> <title>Search results for <%= "#{session[:me].first_nam

我试图使用HomeAwayAPI在html页面上显示一些数据

我的搜索结果文件如下所示 价格范围=[#,#,#],而不是我想要的3个价格

我在网上查过转换为整数的方法,但那没有用。我只是想知道这个数字是否被服务器保留了/我的堆栈/代码有问题,因为我诚实地搜索了几个小时,什么也没找到

这是我的密码

搜索结果

<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选项

我们刚刚添加的第一个处理程序将服务于req

priceRanges的值是多少?我不知道,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)元素