酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Rails 3.2.9とBootstrapで作るシンプルな検索機能のテンプレ

Where?Rails 3.2.9とTwitter Bootstrapをつかったアプリに検索機能をつけました。個人的忘備録で、手順のメモを書いておきます。


ControllerにSearchメソッドを追加

1
2
3
4
5
6
class ArticlesController < ApplicationController
  def search
    search_word = URI.decode(params[:q].to_s)
    @articles = ImageSite.where(content: search_word)
  end
end

Viewに検索フォームを追加

HTMLを使っている場合はこちら。

1
2
3
4
5
6
<div id="search_form_box">
  <form class="form-search" action="/search" method="get" role="search">
    <input class="input-medium search-query" name="q" placeholder="Search" type="text" value="<%= params[:q] %>">
    <input class="btn" alt="検索" value="検索" type="submit">
  </form>
</div>

HAMLを使っている場合はこちら。

1
2
3
4
#search_form_box
    %form.form-search{action: "search", method: "get", role: "search"}
        %input.input-medium.search-query{name: "q", placeholder: "Search", type: "text", value: params[:q]}
        %input.btn{alt: "検索", value: "検索", type: "submit"}

config/route.rbにSearchを追加

1
2
3
TestApp::Application.routes.draw do
  match "search" => "articles#search"
end

以上でコーディングは終了です。 結果はこんな感じになるとおもいます。(Bootsrap/Bootswatch/Cosmoを適用)

どうぶつの森 QRコードまとめ 検索ボックス

ということで、「どうぶつの森 QRコードまとめ」に検索ボックスを設置しました!

補足: 検索系のGemならSolr/sunspotが有名

今回はレコードが2000件くらいしかなくって大げさな仕組みが必要なかったので使いませでしたが、大規模なら「Apache Solr」とGem「Sunspot」を使うべきですよね。

一応簡単には調べたのでリンクだけ残しておきます。

sunspot/sunspot · GitHub

【sunspot】Railsでsunspot(solr)を使用するとき、rsolrでモデルを経由せずインデックス作成を行う。 - 記すに足らず。

結局、Rails 3.2 で 大量のデータを検索する場合、Sunspot な Solr が一番 いい感じ。という面白くないオチ。 | JAM☆ぱん

検索エンジンの常識をApache Solrで身につける (1/4) - @IT

変更来歴

01/25 18:05 view側のhtmlのactionを修正

おすすめの書籍