Railsアプリに「いいね機能」を実装する方法




Railsアプリに「いいね機能」を実装する方法は??

Railsアプリでやってみたいのが「いいね機能」の実装です。

「いいね機能」がないアプリは死んだも同然。

ほぼすべてのアプリにいいね機能がついていますから。

今日は「いいね機能」をRailsアプリで実装する方法をまとめておきました。

 

例として「user」と「tweet」モデルを使って、userがある任意のtweetにいいねできる機能をつけていきます。

まず、基本的な実装方法からですね。

 

likeモデル作成

まずは「いいね(like)」モデルの作成です。

  • user_id(integer)
  • tweet_id(integer)

のプロパティを持ったモデルを作ります。

コマンドは

ですね。

それが終わったら、最後に

を発動してデータベースを更新。

 

コントローラーを作成

いいね用のコントローラーを手動で作りましょう。

likes_controller.rb

ですね。

ファイル階層のapp > controllersにぶちこみます。

likeモデルにビューファイルが必要ないので手動で作りました。

 

ルーティングを設定

ルーティングは次のように設定しましょう。

ポイントはgetではなくpostになっている点ですね。

いいねすると、データベース値が変化するので、postを採用しました。

 

コントローラーにアクションを追加

空っぽのコントローラーにアクションを追加。

ルーティングでも出てきましたが、今回は

  1. create
  2. destroy

の2アクションです。

それぞれこのようになってますね。

 

いいねボタンを表示

最後にいいねボタンを表示します。

すでにいいねしたユーザーかどうかによって、表記とリンク先を切り替え。

「いいねをしたuser_id」と「ログイン中のuser_id」が一致するかで条件分岐させます。

 

いいね数をカウントしたい時はどうする?

いいね数をカウントできると面白いですね。

ここではcountメソッドを使います。

 

tweets_controller.rbのshowアクションで、変数@like_countを定義。

likeのtweet_idが@tweet.idと一致したものをwhereメソッドで取得したものを代入します。

 

それをtweetのビューファイルshow.html.erbにて、

で表示させれば、いいね数のカウントが出てくるでしょう。

 

いいねを一覧で表示する

いいねしたデータを一覧で表示したい??

そういう時は次のステップを踏むと良いですよ。

 

ルーティングを設定する

新しくuserのルーティングを追加です。

 

アクションを追加

次はアクションを追加。

userコントローラーにlikesアクションを追加します。

 

ビューファイル追加

最後にビューファイルです。

新しくuserのフォルダ内に

likes.html.erb

を作って、そこにlikeしたtweetを表示しましょう。

いいねしたデータ一覧を表示できましたね?

Railsアプリを作ったら、いいね機能の実装にもチャレンジしましょう。

 

それでは!

Lin

Pocket
LINEで送る




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




コメントを残す

メールアドレスが公開されることはありません。