如果由表单而不是REST创建,则Rails有条件地验证字段

时间:2013-05-04 00:45:24

标签: ruby-on-rails

我有一个Rails应用程序,它通过REST界面从另一个应用程序接收新的工作程序。用户还可以通过表单输入新的工作单。

如果通过新表单创建新工单,我想验证用户是否从主管的复选框(选择列表)中选择了一个值。

如果用户更新了工作订单,或者使用REST界面创建了工作订单,我不想验证。

这样可以在创建期间验证,而不是更新:

validate_presence_of :supervisor, :on => :create

但是,如何在通过REST创建记录时不进行验证?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

模型

attr_accessor :rest

validates_presence_of :supervisor, :on => :create, :if => lambda{ |model| model.rest }

控制器

...
respond_to do |format|
  format.json do
    model.rest = true
    ...
  end
end