这可能是我的一个基本疏忽,但我似乎不记得有什么简单的方法可以消除通过has_many :through连接的两个对象之间的关联.例如:

class Photo
  has_many :tags, :through => :taggings
  has_many :taggings, :dependent => :destroy
end

class Tags
  has_many :photos, :through => :taggings
  has_many :taggings, :dependent => :destroy
end

class Taggings
  belongs_to :photo
  belongs_to :tag
end

如果有两个对象tagphoto,只需执行以下操作即可将它们关联起来:

photo.tags << tag

那么,有没有一个同样简单的反面呢?例如:

photo.tags.remove tag

推荐答案

以下是你想要的:

photo.tags.delete(tag)

Ruby-on-rails相关问答推荐

Rails 7.1解决冲突的Zeitwerk Inflection规则

Rails TurboStream:可以向元素动态添加一个css类吗?

在Rails中,如何将帮助器方法添加到属性/列?

`ActionController::API` 祖先类在加载后不会更新

Ruby on Rails 让外键工作

在bash中匹配带有空格字符的字符串

ArgumentError:您需要使用 :if 提供至少一个验证

Rails 模型.有效吗?刷新自定义错误并错误地返回 true

在 rails 3 中设置记录器

在允许用户使用设计(rails)登录之前判断用户是否处于活动状态

禁用冻结字符串文字注释判断

将 defer 属性添加到 javascript_include_tag Rails

如何从 ActiveRecord 中的每个组中获取最新记录?

在 Rails/ActiveRecord 列名中使用问号字符

如何让 ActiveAdmin 使用强参数?

如何在 ROR (Ruby) 中显示 PDF?

非持久 ActiveRecord 模型属性

快速添加链接[:notice]

# 轨道中的 TODO

如何设置 MiniTest?