人生64日目

HAGIRE(9)

ほとんど全ての機能が完成した。
あと原因不明だったcontainerのmarginが解決した!(原因不明のまま)

ユーザー検索機能の実装

生のSQLをちょこッと書いた。

.
.
.
#users controller
def index
    @users = if params[:search]
      User.all.page(params[:page]).per(10).where("username LIKE ?", "%#{params[:search]}%")
    else
      User.all.page(params[:page]).per(10)
    end
 end
#index.html.erb
.
.
.
<%= form_with url: users_path, method: :get, local: true do |form| %>
  <%= form.text_field :search %>
  <%= form.submit "検索" %>
<% end %>

フォームの入力内容をparams[:search]に保存してusers controllerのindexアクションに送信。
%は前方/後方一致を示すもので、%params[:search]%とすることで入力内容を含むusernameを探すことができる。
kaminariを使ったページネートを利用しているので、.page~.per~がある。

正直、ユーザー検索機能そのものより、ユーザーを一覧で綺麗に表示する方がめんどくさかった・・・。(リファクタしてないのでコードは載せない)

明日には全てが完成する予定。ただのTwitterクローンになっちゃった。もっと綺麗に、早く、上手くできるようになりたい。
ただ、とにかく楽しい。