Ruby on rails rails模型中的重复条目验证
如果我有一个模型Ruby on rails rails模型中的重复条目验证,ruby-on-rails,validation,activerecord,Ruby On Rails,Validation,Activerecord,如果我有一个模型部门,有用户id和组id 当操作尝试保存已存在的模型条目时,即1(用户id)、22(组id)已存在,此时我想提出违规。在rails中实现这一点的方法是什么 下面是我现在用来保存的代码: if @department.save flash[:notice] = "Successfully created department." redirect_to @department else render :action => 'new' end 部门型号 class
部门
,有用户id
和组id
当操作
尝试保存已存在的模型
条目时,即1(用户id)、22(组id)已存在,此时我想提出违规。在rails中实现这一点的方法是什么
下面是我现在用来保存的代码:
if @department.save
flash[:notice] = "Successfully created department."
redirect_to @department
else
render :action => 'new'
end
部门
型号
class Department < ActiveRecord::Base
belongs_to :group
belongs_to :user
end
班级部门
编辑现在,我可能误解了你,也许你只想检查一下。如果我错过了什么,请告诉我 活动记录有
new\u record?
方法来确定对象是否已保存(数据库中是否存在该对象的记录)。我从以下位置复制此演示: p=Person.new(:name=>“John Doe”) => # >>新记录? =>正确 >>p.save =>正确 >>新记录? =>错误 您还可以使用内置的rails验证,比如
class Department < ActiveRecord::Base
validate :my_validation_method, :on => update
def my_validation_method
errors.add_to_base("You can't update existing objects")
end
end
班级部门update
定义我的验证方法
错误。将\添加到\基础(“无法更新现有对象”)
结束
结束
您可以在我上面链接的教程中找到有关rails验证的更多信息。编辑
现在,我可能误解了你,也许你只想检查一下。如果我错过了什么,请告诉我
活动记录有new\u record?
方法来确定对象是否已保存(数据库中是否存在该对象的记录)。我从以下位置复制此演示: p=Person.new(:name=>“John Doe”) => # >>新记录? =>正确 >>p.save =>正确 >>新记录? =>错误 您还可以使用内置的rails验证,比如
class Department < ActiveRecord::Base
validate :my_validation_method, :on => update
def my_validation_method
errors.add_to_base("You can't update existing objects")
end
end
班级部门update
定义我的验证方法
错误。将\添加到\基础(“无法更新现有对象”)
结束
结束
您可以在我上面链接的教程中找到有关rails验证的更多信息。但我想您想要验证的是,只有一个部门的pair user\u id=1,group\u id=22。这可以通过以下方式实现:
validates_uniqueness_of :user_id, :scope => [:group_id]
但我想你想要的是验证只有一个部门的pair user\u id=1,group\u id=22。这可以通过以下方式实现:
validates_uniqueness_of :user_id, :scope => [:group_id]