こんにちは。
Railsのアプリケーションにいいね機能を実装したいと考えています。
概要としましては、写真を投稿⇨写真の詳細ページに表示される写真の隣にいいねボタンの設置⇨閲覧しているユーザーがいいねボタンを押すといいねがカウントされる⇨いいねを押したユーザーのマイページにいいねを押した投稿一覧が表示されるという仕組みを作成したいです。
以下のURLを参考に作成したいと考えているのですが、
以下のサイトで作成されているliked_user, liked_postというのはlikesテーブルのカラム名という事でしょうか?
modelsにて、アソシエーションを組んでいる、ようですがテーブルに対してではなくカラムに対してアソシエーションを組んでいるのでしょうか?
中間テーブルに保存しているようなのでカラム名かと思うのですが、modelの記述がわからず困っています。
なぜアソシエーションをかけなければいけないのか、どのようなテーブル作成になるのか、
又、他にいいね機能実装にあったって参考にするとわかりやすいサイトがございましたらご教授お願い致します。
models/user.rb
class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :posts, dependent: :destroy has_many :likes, dependent: :destroy has_many :liked_posts, through: :likes, source: :post end
post.rb
class Post < ApplicationRecord belongs_to :user has_many :likes has_many :liked_users, through: :likes, source: :user end
##試したこと・調べたこと
has_many :liked_posts, through: :likes, source: :post
userはlikesテーブルを通してliked_usersテーブルとアソシエーションを組まれているようなので、、liked_postsテーブル・liked_usersテーブルも存在している??
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/23 05:22