1
2

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.

validates_uniqueness_ofとは

Posted at

#はじめに

オリジナルアプリでいいね機能の実装に取り掛かっています。
そのとき初めて出てきた記述があったのでアウトプットしていきます。

#validates_uniqueness_of

いいね機能の実装のためにlikeモデルを作成しました。

like.rb
class Like < ApplicationRecord
  #アソシエーション
  belongs_to :user
  belongs_to :review

  validates_uniqueness_of :review_id, scope: :user_id
end

userは1つの投稿に対して1つしかいいねをつけられないようにするためにバリデーションを記述しました。

validates_uniqueness_ofによって属性の値が一意であることをバリデーションが成立します。

.rb
 validates :review_id, uniqueness: true

しかしこのような記述では1つの投稿に対して1つしかいいねが押せないことになってしまいます。

そのためにscopeを使って、範囲を指定して、一意かどうかを判断します。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?