MySQLとRuby on Railsでシンプルなブログ検索機能を作成するには
シンプルなブログ検索機能を開発する場合、データベースとして MySQL を、アプリケーションの構築に Ruby on Rails フレームワークを使用する必要があります。以下に、この機能を実現するためのいくつかの手順を記載します。
- データベースの設定:Rails アプリケーションの config/database.yml ファイル内で、MySQL データベース接続を設定します。
- ブログのモデルを作成する:Railsのコマンドラインツールを使用して、ブログモデルを生成し、データベースの移行コマンドを実行します。
$ rails generate model Blog title:string content:text
$ rails db:migrate
タイトルと本文の2つのフィールドを含むブログというモデルが作成されます。
- ブログ
- どこで
class Blog < ApplicationRecord
def self.search(query)
where("title LIKE ? OR content LIKE ?", "%#{query}%", "%#{query}%")
end
end
このメソッドはクエリ文字列をパラメータとして受け取り、title フィールドと content フィールドに対してあいまい一致クエリを実行します。
- アプリのビューファイルで、ユーザーの検索クエリを受け付けるシンプルなフォームを作成します。
<%= form_tag blogs_path, method: :get do %>
<%= text_field_tag :query, params[:query], placeholder: "Search blogs" %>
<%= submit_tag "Search" %>
<% end %>
このフォームはブログs_pathにクエリ文字列をHTTP GETメソッドで送信します。
- ブログ
class BlogsController < ApplicationController
def index
if params[:query].present?
@blogs = Blog.search(params[:query])
else
@blogs = Blog.all
end
end
end
クエリパラメータがあれば、Blogモデルのsearchメソッドを呼び出す。そうではなく、全ブログを返す。
- 検索結果を表⽰する:ビューファイルでループ処理を利⽤して検索結果を表⽰します。
<% @blogs.each do |blog| %>
<h2><%= blog.title %></h2>
<p><%= blog.content %></p>
<% end %>
これにより、各ブログが反復処理され、タイトルとコンテンツが表示されます。
上記の手順により、Ruby on Railsアプリケーションにシンプルなブログ検索機能を実装できます。ただし、検索機能を追加する前に、データベース接続が適切に設定されていることを確認してください。