基于关系的Rails唯一性验证

时间:2014-07-14 17:31:53

标签: ruby-on-rails

我有两个型号......

  create_table "registrations", :force => true do |t|
    t.integer  "orientation_id"
    t.string   "first_name"
    t.string   "last_name"
    t.string   "email"
    t.string   "student_id"
...
  end
  create_table "orientations", :force => true do |t|
    t.date     "class_date"
    t.text     "class_time"
    t.integer  "seats"
    t.boolean  "active",     :default => true
    t.datetime "created_at",                   :null => false
    t.datetime "updated_at",                   :null => false
  end

我想在我的注册模型中创建一个验证,说明student_id在每个方向都必须是唯一的。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您需要scope的{​​{1}}选项。如果是这样,这应该有效

validates_uniqueness_of模型中,

Registration

此外,您应该生成迁移以添加此

Class Registration < ActiveRecord::Base

......

validates_uniqueness_of :student_id, scope: :orientation_id

end

更多信息 here