我的应用程序中有几个模型包含广泛的ActiveRecord验证以确保数据质量,但由于这些需要大量用户输入,我还允许用户通过输入快速创建记录只是完整创建通常所需信息的一小部分。
当我正在进行“快速创建”时,有没有办法绕过一些验证?
到目前为止,我一直在做@project.save(:validate=>false)
并在控制器操作中手动执行必要的验证,但这是笨拙的并且创建了冗余代码。我应该怎么做呢?
答案 0 :(得分:0)
以下代码段是从另一个post借来的,并对其进行了一些修改:
class Project < ActiveRecord::Base
validates_uniqueness_of :project, :unless => :quick_create
attr_accessor :quick_create
end
以下代码段进入您的视图
<%= submit_tag 'Submit', :name => 'project[quick_create]' %>
所有逻辑都在您的模型中,您根本不会触摸控制器。