显示来自搜索查询的额外数据

Display extra data from a Search Query

目前正在通过 Udemy 课程学习,但将讲座更改为我对开发更感兴趣的内容。

项目基础: - 使用 Gem Flightstats-flex 提取航班数据 - 尝试显示来自搜索查询的相关信息

当前设置

app/controllers/trackers_controller.rb

class TrackersController < ApplicationController

  def search
    @tracker = FlightTracker.new_from_lookup(params[:tracker])
    render 'users/my_tracker'
  end

end

app/models/flight_tracker.rb

class FlightTracker < ActiveRecord::Base

    self.table_name='trackers'

    def self.new_from_lookup(tracker)
      flight_track = FlightStats::FlightStatus.by_flight_id(tracker)
      # flight_position = FlightStats::FlightStatus.track_by_flight_id(tracker)

end

这就是问题所在,当我从 flight_position = FlightStats::FlightStatus.track_by_flight_id(tracker)

中删除 #

app/views/users/my_tracker.html.erb 数据确实呈现

<h1>
  My Tracker
</h1>

<h3>Search for Flights</h3>
<div id="tracker-lookup">
  <%= form_tag search_trackers_path, method: :get, id: "tracker-lookup-form" do %>
    <div class="form-group row no-padding text-center col-md-12">
      <div class="col-md-10">
        <%= text_field_tag :tracker, params[:tracker], 
                                  placeholder: "Stock ticker symbol", autofocus: true,
                                  class: "form-control search-box input-lg" %>
      </div>
      <div class="col-md-2">
        <%= button_tag(type: :submit, class: "btn btn-lg btn-success") do %>
          <i class="fa fa-search"></i> Look up a tracker
        <% end %>
      </div>
    </div>

  <% end %>
</div>

<div class="well results-block">
  <%=@tracker.inspect%>
    <strong>ID: </strong> <%#= @tracker&.flight_id %>
    <strong>Code: </strong> <%#= @tracker&.carrier_fs_code %>
    <strong>Number: </strong> <%#= @tracker&.flight_number %>
    <strong>Departure: </strong> <%#= @tracker&.departure_airport_fs_code %>
    <strong>Arrival: </strong> <%#= @tracker&.arrival_airport_fs_code %>
    <%# <strong>Departure Terminal: </strong> <%= @tracker&.departure_terminal %> %>
  <%=@position.inspect%>  
</div>

所以当用户搜索 .by_flight_id 时,我希望它显示 .track_by_flight_id

的相关数据

希望在一次查询完成后进入下一阶段更多的数据关联

作为我的评论的例证

def self.new_from_lookup(tracker)
  flight_track = FlightStats::FlightStatus.by_flight_id(tracker)
  flight_position = FlightStats::FlightStatus.track_by_flight_id(tracker)
  OpenStruct.new(flight_track: flight_track, flight_position: flight_position)
end

然后你需要重写模板my_tracker.html.erb来处理新的数据结构