1

私は最初のWebおよびRailsアプリで作業していますが、メインページからコントローラーの1つに検索機能を機能させる方法を理解できません。

リクエストを送信して結果ページにリダイレクトし、検索結果を表示する方法。変数@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>
4

1 に答える 1

0

次の適応例のようなものを試してください。

https://gist.github.com/4173716

しかし、その理由を理解するには、Rails3をもう少し深く掘り下げる必要があります。

于 2012-11-30T04:07:45.717 に答える