Как проверить уникальность в области с помощью лямбда-функции - PullRequest
1 голос
/ 20 ноября 2011

Я пытаюсь проверить уникальность video_id относительно session_id. Я не знаю, что я делаю не так. Вот код модели, который у меня есть.

class SessionWatchHistory < ActiveRecord::Base
  validates_presence_of :session_id, :on => :create, :message => "can't be blank"
  validates_presence_of :video_id, :on => :create, :message => "can't be blank"

  belongs_to :video, :class_name => "Video", :foreign_key => "video_id"

  scope :per_session, lambda{ |s| where("session_id = :session", :session => s)}
  validates_uniqueness_of :video_id, :scope => [:per_session]
end

1 Ответ

5 голосов
/ 20 ноября 2011

Если вы хотите проверить уникальность поля с другим полем, вам нужно поместить другое поле в область.Таким образом, относительно session_id будет:

validates_uniqueness_of :video_id, :scope => [:session_id]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...