Rails 5模型验证多个属性不起作用

时间:2017-12-06 06:59:09

标签: ruby-on-rails validation model-validation ruby-on-rails-5

尽管数据库验证工作正常,但我的模型验证并未按预期工作。

我需要对3个属性的组合有一个独特的约束。验证应该是:如果:tag_owner_area存在,表中应该没有其他行具有相同的tag_owner_area,fieldable_type和fieldable_id。

Field.rb模型具有以下验证:

validates :tag_owner_area, :allow_blank => true, uniqueness: {scope: [:fieldable_type, :fieldable_id]}

我认为这与PostgreSQL验证的条件相同:

create_table :fields do |t|
  t.integer :tag_owner_area
  t.references :fieldable, polymorphic: true, index: true, :null => false
  t.references :user, foreign_key: true
  t.timestamps
end

# Here is the validation that works as intended
add_index :fields, [:tag_owner_area, :fieldable_type, :fieldable_id],unique: true, :name => 'field_unique_index' 

必须有所不同,因为DB验证按预期设置,但模型验证似乎没有被触发。

0 个答案:

没有答案