5

У меня возникла странная проблема в проверке наличия ассоциации в производном классе.Проверяет ассоциацию в классе дочерних элементов модели

Class Contact < ActiveRecord::Base 

    has_and_belongs_to_many :things 

end 

Class SubContact < Contact 

# validates_presence_of :things 
    validate :must_have_things 

    def must_have_things 
    if things.blank? 
     errors.add("Must select things") 
    end 
    end 

end 

В SubContact классе, я пытаюсь проверить наличие вещей, но ничего не работает. Я пробовал как пользовательские, так и встроенные валидаторы. Как я могу это достичь?

+0

@alexanderbird в вопросе OP никогда не упоминается STI, поэтому я не думаю, что ссылка полезна –

+0

Не является ли пример кода OP, показывающий STI? Я думаю, если в таблице контактов нет столбца типа, это не STI ... – alexanderbird

+0

Да, у нас нет столбца типа. –

ответ

3

add нуждается в атрибуте. Попробуйте использовать:

errors.add(:base, "Must not be blank") 

В этом случае это базовый класс, но это может быть и любой другой атрибут. Указать имя атрибута класса SubContract или :base.

+0

Не нужно возвращать true или false, поскольку мы добавляем ошибку, но даже если мы это делаем, все равно не работает. –

+0

Я отредактировал мою версию. Проверить – mhaseeb

+0

Нет @mhaseeb эта вещь не работает для унаследованных ресурсов. –