【发布时间】:2021-10-14 10:32:28
【问题描述】:
我基本上有这个系统:
class Article < ApplicationRecord
has_many :tag_associations
has_many :tags, through :tag_associations
end
class Tag < ApplicationRecord
# attr :name
end
如何使文章只能具有每个标签名称之一?也就是说,假设我有这些标签:
{ name: 'foo' }
{ name: 'bar' }
{ name: 'baz' }
我希望这是最终结果:
tag1 = Tag.create!(name: 'foo')
tag2 = Tag.create!(name: 'bar')
tag3 = Tag.create!(name: 'baz')
article.tags << tag1
article.tags << tag2
article.tags << tag1
article.tags << tag1
article.tags << tag1
article.save!
article.tags # => [tag1, tag2]
我如何实现这一目标?我对 Rails 范例不是很熟悉,即使使用普通的 SQL,我也不确定如何以一般方式执行此操作。但我只是在寻找如何以 Rails 的方式做到这一点。
【问题讨论】:
标签: ruby-on-rails activerecord associations