J'ai une validation personnalisée qui est répétée plusieurs modèles. Y a-t-il un moyen de le refactoriser et de le rendre sec?Refonte de la validation personnalisée répétée dans Rails
class Channel < ActiveRecord::Base
belongs_to :bmc
has_and_belongs_to_many :customer_segments
validates :name, presence: true
validate :require_at_least_one_customer_segment
private
def require_at_least_one_customer_segment
if customer_segments.count == 0
errors.add_to_base "Please select at least one customer segment"
end
end
end
class CostStructure < ActiveRecord::Base
belongs_to :bmc
has_and_belongs_to_many :customer_segments
validates :name, presence: true
validate :require_at_least_one_customer_segment
private
def require_at_least_one_customer_segment
if customer_segments.count == 0
errors.add_to_base "Please select at least one customer segment"
end
end
end
class CustomerSegment < ActiveRecord::Base
has_and_belongs_to_many :channels
has_and_belongs_to_many :cost_structures
end
Tout lien de référence aussi très apprécié.Merci !!
I J'ai eu cette idée mais customer_segment_id n'est pas un champ de mon modèle. Donc je n'étais pas sûr que cela fonctionne ou pas. Est-ce que cela va? –