在特定页面上对特定属性进行Rails验证

时间:2019-06-26 14:59:30

标签: ruby-on-rails

我正在考虑将同一控制器用于联系人的不同页面。但是,新页面也需要电话。

现在,联系人模型具有以下验证条件:

validates :name, email, :interest, presence: true

没有问题。新页面将使用我将设置的默认兴趣。我确实只想在特定页面上要求电话。除了对存在状态进行UI验证之外,我还想在模型中进行实际验证。

那么,有没有一种干净的方法可以验证模型上指向原始点(即页面)的单个属性?

1 个答案:

答案 0 :(得分:0)

我认为您需要:on选项(或验证上下文)。 https://guides.rubyonrails.org/active_record_validations.html#on

您可以执行以下操作:

validates :phone, presence: true, on: :some_conext

然后执行更新属性的操作

if user.save(context: :some_context)
  ....