Как удалить ассоциацию после удаления модели - PullRequest
0 голосов
/ 13 ноября 2011

Это, вероятно, довольно просто, но я не совсем уверен, как это реализовать. У меня есть События и Пользователи, и к ним присоединился HABTM. Когда пользователь удаляется, я бы хотел, чтобы все его ассоциации с событиями также были удалены. Кроме того, когда событие удаляется, я бы хотел, чтобы все ассоциации пользователей с этим событием были удалены. (не сами пользователи, а просто ассоциация) Спасибо! Вот мои ассоциации:

Событие:

  has_and_belongs_to_many :users, :uniq => true

Пользователь:

  has_and_belongs_to_many :events, :uniq => true

Ответы [ 2 ]

0 голосов
/ 13 ноября 2011

Попробуйте: зависимые =>: уничтожить.Удачи.

has_and_belongs_to_many :events, :uniq => true, :dependents => :destroy

Может быть еще одно требование, ознакомьтесь с другими документами.

Вы также можете попробовать my_object.my_dependents.destroy_allНо, учитывая отношения HABTM, это может привести к тому, что все будет удалено, если они все связаны друг с другом, просто кажется немного отрывочным, особенно если это идет обоими путями.Способ построить отношения многие ко многим не всегда прост.Если вам нужно работать с моделью отношений как с собственной сущностью, используйте has_many: through.Используйте has_and_belongs_to_many при работе с устаревшими схемами или когда вы никогда не работаете непосредственно с самими отношениями.

Ссылка для прочтения: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

0 голосов
/ 13 ноября 2011

Сначала вы должны удалить свои дочерние элементы, а затем перейти к родительским элементам.Вы должны будете сделать это в обоих ваших сценариях.

Причина, почему;как только вы удалите этот родительский ключ, вы осиротите детей и больше не будете иметь к ним доступа.

Удачи, и надеюсь, что это поможет некоторым.

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