8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】閲覧数の表示を実装してみた

Posted at

####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>

これを貼り付ければ詳細ページに閲覧数が表示できます!!!

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?