我有一个模型,其中有一个字段可以为null,并且"具有并且属于许多关系"。字段名称为pms_ink_heat_transfer
,关系为style_method
表。
如果pms_ink_heat_transfer
属于表Heat Transfer
的{{1}}行,我该如何才能{}}}
其中style_method
是Heat 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
答案 0 :(得分:0)
不知道我的数据结构是否正确,但您可以在模型中有条件地验证它,如下所示:
validates :pms_ink_heat_transfer, :presence => true, if: ->
{ self.style_method.try(:name).to_s == 'Heat Transfer' }
另外,请考虑使用jquery验证等方法在客户端进行验证,以获得更好的用户体验。
希望这有帮助,祝你好运!