####My Profile
プログラミング学習歴②ヶ月目のアカウントです!
プログラミングスクールで学んだ内容や自分が躓いた箇所等のアウトプットの為に発信しています。
また、プログラミング初学者の方にわかりやすく、簡潔にまとめて情報共有できればと考えています。
もし、投稿した記事の中に誤り等ございましたら、コメント欄でご教授いただけると幸いです。
#対象者
- 閲覧数を表示させたい方
#目的
- 閲覧数を表示させる機能を実装する
#実際の手順と実例
###1.前提
本の内容を投稿するSNSを作成しています。
詳細ページに閲覧数を表示します!
Book(model)
books table
books controller
User model
users table
users controller
###2.モデルの準備
bookとuserと1対Nの関係になる「閲覧数」モデルを作成します。
まずテーブルとモデルを準備します。
rails g model ViewCount book_id:integer, user_id:integer
###3.それぞれのアソシエーション
user.rb
has_many :view_counts, dependent: :destroy
````
book.rb
````
has_many :view_counts, dependent: :destroy
````
view_count.rb
````
belongs_to :user
belongs_to :book
```
###4.コントローラーへ追記
今回は閲覧数を表示したい場所に属するコントローラーに追記していきます。ここでは投稿されたbookがどのくらい見られているか表示したいのでbooks controllerに追記します。
````
def show
@book_detail = Book.find(params[:id])
unless ViewCount.find_by(user_id: current_user.id, book_id: @book_detail.id)
current_user.view_counts.create(book_id: @book_detail.id)
end
end
```
###5.Viewページへ追記
````` show.html.erb
<p class="view-count">👀数: <%= @book_detail.view_counts.count %></p>
これを貼り付ければ詳細ページに閲覧数が表示できます!!!