我有两个模型hotel
和theme
,两者都有has_and_belongs_to_many
关系
和第三个表名是hotels_themes
,所以我想只删除第三个表hotels_themes
中的记录。
hotels_themes;
+----------+----------+
| hotel_id | theme_id |
+----------+----------+
| 8 | 4 |
| 9 | 5 |
| 11 | 2 |
| 11 | 4 |
| 11 | 6 |
| 12 | 2 |
| 12 | 5 |
+----------+----------+
我想删除与hotel_id和theme_id匹配的记录。
像sql查询delete from hotels_themes where hotel_id=9 and theme_id=5
答案 0 :(得分:1)
使用添加到HABTM集合的方法delete:
hotel = Hotel.find(hotel_id)
theme = Theme.find(theme_id)
hotel.themes.delete(theme)
答案 1 :(得分:0)
您只需在任一模型实例上清空关联,具体取决于您要删除的内容。例如:
hotel.themes = []
# or
theme.hotels = []