Ruby on rails 在Rails中检查表单输入值的健壮方法是什么
我有一个表单,希望检查表单输入值。如果值通过检查,则值可以存储在DB中。我知道我可以在视图、控制器甚至模型中检查它们。我认为最好的方法可能是在所有三个部分中检查它们,并且在提交之前只在视图中检查它们可能会导致问题,因为其他人可以手动修改并将请求发送给控制器Ruby on rails 在Rails中检查表单输入值的健壮方法是什么,ruby-on-rails,ruby-on-rails-4,model-view-controller,Ruby On Rails,Ruby On Rails 4,Model View Controller,我有一个表单,希望检查表单输入值。如果值通过检查,则值可以存储在DB中。我知道我可以在视图、控制器甚至模型中检查它们。我认为最好的方法可能是在所有三个部分中检查它们,并且在提交之前只在视图中检查它们可能会导致问题,因为其他人可以手动修改并将请求发送给控制器 例如,我有一个用户变量在视图中。我不希望日期类型属性user。开始日期被修改为早于user。应用日期,我应该如何使保护健壮?您要寻找的是模型验证:在模型中执行,这是通常的方式。RubyonRails广泛支持模型错误,如果有错误,您可以简单地重
例如,我有一个用户变量在视图中。我不希望日期类型属性
user。开始日期被修改为早于user。应用日期,我应该如何使保护健壮?您要寻找的是模型验证:在模型中执行,这是通常的方式。RubyonRails广泛支持模型错误,如果有错误,您可以简单地重新显示记录和该记录中的错误
您可以通过标准验证来确保值存在、唯一等
您还可以在模型中进行自定义验证
validate :start_date_cannot_be_before_apply_date
def start_date_cannot_be_before_apply_date
if start_date < apply_date
errors.add(:start_date, "can't be before the apply date")
end
end
验证:开始日期不能早于应用日期
def开始日期不能早于应用日期
如果开始日期<应用日期
错误。添加(:开始日期,“不能早于应用日期”)
结束
结束
查看日期确认器
gem()
它允许进行如下验证:
验证:开始日期,日期:{after::apply_date}