相关疑难解决方法(0)

在已销毁的嵌套模型轨中的validates_uniqueness_of

我有一个Project模型,它接受Task的嵌套属性.

class Project < ActiveRecord::Base  
  has_many :tasks

  accepts_nested_attributes_for :tasks, :allow_destroy => :true

end

class Task < ActiveRecord::Base  
validates_uniqueness_of :name end
Run Code Online (Sandbox Code Playgroud)

任务模型中的唯一性验证在更新Project时会出现问题.

在编辑项目时,我删除任务T1,然后添加一个同名T1的新任务,唯一性验证限制了项目的保存.

params hash看起来像

task_attributes => { {"id" =>
"1","name" => "T1", "_destroy" =>
"1"},{"name" => "T1"}}
Run Code Online (Sandbox Code Playgroud)

在销毁旧任务之前完成对任务的验证.因此验证失败.任何想法如何验证,它不会考虑任务被销毁?

ruby-on-rails nested-forms validates-uniqueness-of

18
推荐指数
1
解决办法
6251
查看次数

Rails 3:嵌套fields_for的唯一性验证

A有两个型号,"商店"和"产品",通过has_many:through链接.

在商店表单中有多个产品的嵌套属性,我在产品的唯一性验证方面遇到了一些麻烦.如果我输入产品,保存它,然后尝试为新产品输入相同的名称,则唯一性验证会成功触发.

但是,如果我在同一嵌套表单的两行中输入相同的产品名称,则表单被接受 - 唯一性验证不会触发.

我猜这是一个相当普遍的问题,但我找不到任何简单的解决方案.任何人都有最简单的方法建议,以确保在同一嵌套表格中遵守唯一性验证?

编辑:下面包含的产品型号

class Product < ActiveRecord::Base

  has_many :shop_products
  has_many :shops, :through => :shop_products

  validates_presence_of :name
  validates_uniqueness_of :name
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails validates-uniqueness-of ruby-on-rails-3

10
推荐指数
2
解决办法
4913
查看次数