我正在开发我的第一个 Web 和 Rails 应用程序,但不知道如何从我的主页中获取搜索功能到其中一个控制器。
如何发送请求并重定向到结果页面以显示搜索结果。我无法让它工作,因为我不确定如何以我的变量@histories 将保留结果并显示在显示页面上的方式进行路由。
我希望能深入了解任何页面的搜索并在专用页面上显示结果。
这是我到目前为止在控制器、模型和部分方面的内容。
出货型号:
def self.search(search)
search_condition = search
find_by_sql("SELECT cargo_transit_histories.current_location,cargo_transit_histories.updated_at FROM cargo_transit_histories
INNER JOIN shipments ON shipments.id = cargo_transit_histories.shipment_id WHERE shipments.tracking_number='search_condition'")
end
跟踪控制器:
def search
@histories = Shipment.search(params[:search])
render('show')
end
显示(在跟踪视图中找到):
<div class="search_result">
<%= render 'track/search_results' %>
</div>
_search(部分):
<%= form_tag :controller => 'tracking', :action => 'search', :method => 'get' do %>
<%= text_field_tag :search, params[:search], :id => 'search_field' %>
<%= submit_tag "Search", :name => nil %>
<%= link_to_function "Clear", "$('search_field').clear()" %>
<% end %>
_search_results(部分):
<div class="Results list">
<table class="Resultslisting" summary="Result list">
<tr class="header">
<th>Current Location</th>
<th>Date/Time</th>
</tr>
<% if !@histories.empty? %>
<% @histories.each do |result| %>
<tr>
<td><%= result.current_location %></td>
<td><%= result.updated_at %></td>
</tr>
<% end %>
</table>
<% else %>
<p> The tracking number does not exist!</p>
<% end %>
</div>