我正在使用我的第一個Web和Rails應用程序,但無法弄清楚如何從我的主頁到其中一個控制器獲取搜索功能。從Rails的主頁面搜索
如何發送請求並重定向到結果頁面以顯示搜索結果。 我無法得到這個工作,因爲我不知道如何路線我的變量@histories將保持結果並顯示在顯示頁面上。
我希望能夠從任何頁面進行搜索並在專用頁面上顯示結果。
這是我迄今爲止在控制器,模型和partials方面。
出貨型號:
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 [email protected]? %>
<% @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>
您應該先閱讀更多關於Rails 3的內容。通過控制器/操作進行的路由已棄用。您不應該在SQL中編寫您的查找器,添加關聯並使用範圍來優化查詢。目前的搜索條件不會被內插,並且容易受到SQL注入的影響。嘗試[使用Rails進行敏捷Web開發](http://pragprog.com/book/rails4/agile-web-development-with-rails),它非常好。 – sj26
Hello @ sj26,我已經有貨物和cargo_transit_histories之間的聯繫,並且會改變這個發現。我最大的問題是如何讓結果顯示在另一個專用頁面上? – Andy7