仅当字段属于其他表行时才会验证该字段

时间:2018-04-27 12:25:56

标签: ruby-on-rails

我有一个模型,其中有一个字段可以为null,并且"具有并且属于许多关系"。字段名称为pms_ink_heat_transfer,关系为style_method表。

如果pms_ink_heat_transfer属于表Heat Transfer的{​​{1}}行,我该如何才能{}}}

其中style_methodHeat Transfer中列name的字段。

我的模特:

style_method

为了给你一个更好的主意。这是我在活动管理员上的代码:

     class Color < ApplicationRecord
       has_and_belongs_to_many :style_methods
       // Insert validation here
     end

因此,如果选中 f.input :pms_ink_heat_transfer f.input :style_methods, as: :check_boxes,collection:StyleMethod.order('name') (StyleMethod中的一个字段)的集合复选框,我需要强制pms_ink_heat_transfer

1 个答案:

答案 0 :(得分:0)

不知道我的数据结构是否正确,但您可以在模型中有条件地验证它,如下所示:

validates :pms_ink_heat_transfer, :presence => true, if: -> 
{ self.style_method.try(:name).to_s == 'Heat Transfer' }

另外,请考虑使用jquery验证等方法在客户端进行验证,以获得更好的用户体验。

希望这有帮助,祝你好运!