Ruby on rails 如何使用lambda函数验证作用域内的唯一性

Ruby on rails 如何使用lambda函数验证作用域内的唯一性,ruby-on-rails,ruby-on-rails-3,validation,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Validation,Ruby On Rails 3.1,我正在尝试验证视频id相对于会话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 =>

我正在尝试验证视频id相对于会话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

如果要用另一个字段验证某个字段的唯一性,则需要将另一个字段放入范围中。因此,相对于会话_id,将是:

validates_uniqueness_of :video_id, :scope => [:session_id]

如果要用另一个字段验证某个字段的唯一性,则需要将另一个字段放入范围中。因此,相对于会话_id,将是:

validates_uniqueness_of :video_id, :scope => [:session_id]

@Cyrus这里的要点是示波器没有寻找AR示波器;啊,我甚至没想到@Cyrus在做什么!我完全明白这会有多么令人困惑。@Cyrus这里的要点是这个范围没有寻找AR范围;啊,我甚至没想到@Cyrus在做什么!我完全明白这会有多混乱。