0

我有两个模型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

4

2 回答 2

1

使用添加到 HABTM 集合中的方法delete :

hotel = Hotel.find(hotel_id)
theme = Theme.find(theme_id)
hotel.themes.delete(theme)
于 2013-09-09T19:52:14.383 回答
0

您只需要根据您要删除的内容清空任一模型实例上的关联。例如:

hotel.themes = []
# or
theme.hotels = []
于 2013-09-09T19:45:50.977 回答