[英]acts_as_taggable on many instances
這是示例:
@profiles = Profile.where(something: true)
而不是做:
@profiles.each do |profile|
@some_user.tag(profile, :with => "paris, normandy")
end
有沒有辦法像這樣在一個調用中標記模型的所有實例?
@some_user.tag(@profiles, :with => "paris, normandy")
我認為沒有什么開箱即用的功能,但是如果您擔心性能/速度,可以直接使用Tagging模型進行批量標簽分配。
這是針對您的用例的代碼改編版,您仍然需要提供profile_ids和tag_ids。
Tagging.transaction do
profile_ids.each do |pid|
tag_ids.each do |tid|
values = ["Profile", pid, tid].join(", ")
Tagging.connection.execute "INSERT INTO taggings (taggable_type, taggable_id, tag_id) VALUES (#{values}) ON DUPLICATE KEY UPDATE id=id"
end
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.