如何在执行操作之前确保表单上的状态验证

时间:2013-05-13 14:01:06

标签: ruby-on-rails

我有一个创建设备的表单。我想确保我传递给它的柜子存在。在设备模型中,我得到了:

validates_presence_of :cabinet_id, :message => 'Please enter full cabinet name beginning with data center code'

控制器对机柜进行操作,以确定是否有空位。如果机柜不存在,这会导致应用程序崩溃,因为它会尝试使用机柜的属性。

在尝试执行操作之前,如何让表单提醒用户机柜不存在?

1 个答案:

答案 0 :(得分:0)

在没有看到模型代码的其余部分的情况下,它有点难,但我建议将条件下的'操作'包装在条件中,例如。 if cabinet_id.present? (do stuff) end

如果操作是自定义验证,请将其设置为有条件的,例如。 validate :space_in_cabinet, if: :cabinet_id