2012-05-23 3 views
0

Я установил свои первые таблицы HABTM (hosts и owners) с таблицей соединений (hosts_owners). Мои тесты, похоже, работают нормально и так же, как и веб-страницы.проверки при вставке содержимого в таблицы HABTM

Итак, мой следующий вопрос: как вставить новые данные и их соответствующие отношения (т. Е. Объединить данные таблицы). Так как я ожидаю, что будет два основных способа вставки новых данных:

  1. программно, где содержание извлекается из других источников и сохраненную в таблицах
  2. вручную, пользователи будут использовать веб-страницы для добавления новых записей ,

Таким образом, для каждого из вышеперечисленных, что такое «рельсы» способ обеспечения того, чтобы каждый раз, когда хост добавлен хотя бы один владелец, также добавляется? (И наоборот). Все книги и статьи, которые я нашел, похоже, останавливаются при создании таблиц и моделей.

ответ

0

использование validation callback. Он похож на триггер базы данных, но относится к вашим моделям рельсов.

например. (Не уверен, если это работает, нужно попробовать):

class Host < ActiveRecord::Base 
    validates :has_at_least_one_owner? 

    def has_at_least_one_owner? 
    owners.any? 
    end 
end 

PS: может быть, вы могли бы использовать validates_presence_of вместо этого, не знаю, работает ли он с HABTM хотя

Смежные вопросы