これで、モデル内の1つの列を検索して期待どおりの結果を返す簡単な検索フォームができましたが、4つのtext_field / Select_tagsを使用して、同じモデル内の4つの列を検索できるようにすることで、これを基にしたいと思います。
たとえば、これをsolrのように提供するGemsを見てきましたが、特にこのような小さなアプリでは、達成したいことには少しやり過ぎだと思います。
アプリはシンプルで、レシピをアップロードしたり、お気に入りにレシピを追加したり、レシピを検索したりできます。
これまでのところ、このように見えます
コントローラ
def search
@countrysearch = Recipe.where(:country_of_origin => params[:search]).all
end
検索フォーム
<%= form_tag({:controller => 'search', :action => 'search'}, {:method => 'get'}) do |s| %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" %>
<% end %>
出力(表示)
<% @countrysearch.each do |r| %>
<tr>
<td><%= r.dish_name %></td>
<td><%= r.country_of_origin %></td>
<td><%= r.difficulty %></td>
<td><%= r.preperation_time %></td>
<td><%= ingredient_names(r.ingredients) %></td>
<td><%= preperation_steps(r.preperations) %></td>
</tr>
検索フォームに、選択したタグを使用して「新しいレシピフォームを作成」を反映させたい
<%= f.label :dish_name, "Dish Name" %>
<%= f.text_field :dish_name, :placeholder => "Enter Dish Name" %>
<%= f.label :country_of_origin, "Country Of Origin" %>
<%= f.select :country_of_origin, [['Wales'],['Scotland'],['England']], {:include_blank => 'Please Select'} %>
<%= f.label :difficulty, "Difficulty Level" %>
<%= f.select :difficulty, [['Beginner'],['Intermediate'],['Expert']], {:include_blank => 'Please Select'} %>
<%= f.select :preperation_time, [['15..30'],['30..60'],['60..120']], {:include_blank => 'Please Select'} %>
<% end %>
正しい方向へのいくつかのポインタをいただければ幸いです。ありがとうございました