проверка поля присутствует только в том случае, если оно принадлежит другой строке таблицы - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть модель, в которой есть поле, которое может быть нулевым и «имеет и относится ко многим отношениям». Имя поля pms_ink_heat_transfer и отношение к таблице style_method.

Как сделать pms_ink_heat_transfer обязательным, только если он принадлежит Heat Transfer строке таблицы 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')

Для этого мне нужно сделать pms_ink_heat_transfer обязательным, если флажок коллекции отмечен для heat transfer (одно из полей в StyleMethod)

1 Ответ

0 голосов
/ 27 апреля 2018

Не знаю, правильно ли я понял вашу структуру данных, но вы можете условно проверить ее в вашей модели следующим образом:

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

также рассмотрите возможность проверки его на стороне клиента, используя что-то вроде проверки jquery для лучшего взаимодействия с пользователем.

Надеюсь, это поможет, удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...