То, как я удаляю единственный HABTM, связало объект, не удаляя сам объект?

Если Вы не должны отображать общее количество страниц тогда, я не уверен, что Вам нужен запрос количества. Много сайтов включая Google не показывает общее количество на разбитых на страницы результатах. Вместо этого они просто говорят "затем>".

40
задан Makoto 11 May 2015 в 23:40
поделиться

1 ответ

Я обычно использую has_many: through, но пробовали ли вы

student.classes.delete(science)

, я думаю, что необходимость иметь целевой объект, а не только идентификатор, является ограничение HABTM (поскольку для вашего удобства таблица соединений абстрагируется). Если вы используете has_many: through, вы можете работать непосредственно с таблицей соединения (поскольку у вас есть модель), и это позволяет вам оптимизировать подобные вещи для меньшего количества запросов.

def leave_class(class_id)
  ClassMembership.delete(:all, :conditions => ["student_id = ? and class_id = ?", self.id, class_id)
end

Если вам нужна простота HABTM, вам нужно использовать

student.classes.delete(Class.find 2)

] Кроме того, называть модель «Класс» - действительно плохая идея. Используйте имя, не являющееся частью ядра Ruby!

58
ответ дан 27 November 2019 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: