Verilen koddan etiketleri yok etmeye çalıştım ancak çalışmıyor. Nasıl başarılabilir? Sağladığınız örnek bozuk gibi görünüyor.Etiketi act_as_taggable eklentisinin etiket listesinden nasıl silebilirim?
cevap
Normalde bir Modele ait etiketlerin bir listesi vardır (Kullanıcı modelini söyleyelim). Daha fazla bilgi için
# Find a user
@user = User.find_by_name("Bobby")
# Show available tags
@user.tag_list # => ["awesome", "slick", "hefty"] as TagList
# Remove the "slick" tag
@user.tag_list.remove("slick")
# Store change
@user.save
(maalesef etiketlerini çıkarmadan izah edilmez) acts-as-taggable-on readme bakmak: O zaman böyle bir şey diyebiliriz.
teşekkür "nil Fixnum zorlandığını edilemez" ama ans met diğer yolu çözme, @tag = Tag.find_by_name (params [: adı]) var @taggings = Etiketleme. find_all_by_tag_id (@ tag.id) tag.delete uç ucu @ @taggings içinde tagging.delete ucu etiketleme –
Tüm etiketleri silmek istiyorsanız, ilgili alana delete_all
gönderebilirsiniz.
Kısa örnek
> resource.grades.delete_all
> resource.reload
> resource.grades
=> []
Uzun örnek
> resource.grades
=> [#<ActsAsTaggableOn::Tag id: 336486, name: "Kindergarten", context: nil, sort: 0>,
#<ActsAsTaggableOn::Tag id: 336506, name: "Pre-K", context: nil, sort: 0>]
> resource.grades.delete_all
(0.3ms) BEGIN
SQL (0.5ms) DELETE FROM `taggings` WHERE `taggings`.`taggable_id` = 984643 AND `taggings`.`taggable_type` = 'Resource' AND `taggings`.`tag_id` IN (336486, 336506) AND (taggings.context = 'grades')
(0.2ms) COMMIT
=> [#<ActsAsTaggableOn::Tag id: 336486, name: "Kindergarten", context: nil, sort: 0>,
#<ActsAsTaggableOn::Tag id: 336506, name: "Pre-K", context: nil, sort: 0>]
> resource.reload
Resource Load (0.6ms) SELECT `resources`.* FROM `resources` WHERE `resources`.`id` = 984643 LIMIT 1
=> #<Resource id: ...>
> resource.grades
ActsAsTaggableOn::Tag Load (0.6ms) SELECT `tags`.* FROM `tags` INNER JOIN `taggings` ON `tags`.`id` = `taggings`.`tag_id` WHERE `taggings`.`taggable_id` = 984643 AND `taggings`.`taggable_type` = 'Resource' AND (taggings.context = 'grades')
=> []
ActsAsTaggableOn (ı bulabilmesi) inşa Bunu yapmak için iyi bir yol yoktur. İşte ben nasıl yaptım:
Önce silmek istediğiniz etiketleri bulun. Bu olması gereken bir Array
veya ActsAsTaggableOn::Tag::ActiveRecord_AssociationRelation
Eğer acts_as_tagger
uyguladıysanız:
tags = @user.owned_tags.where(name: my_array_of_tag_names)
tüm sahipleri tarafından etiket bulmak istiyorum (veya acts_as_tagger
kullanmıyorsanız) ise:
tags = ActsAsTaggableOn::Tag.where(name: my_array_of_tag_names)
Daha sonra etiketler arasında geçiş yapar, tüm etiketlemeleri bulup delete
onları ve son olarak Etiketi delete
. (Bu durumda destroy
çalışmaz unutmayın)
tags.each do |tag|
ActsAsTaggableOn::Tagging.where(tag_id: tag.id).delete_all
tag.delete
end
- 1. eGit'te bir uzak etiketi nasıl silebilirim?
- 2. Colonları MAC adresleri listesinden nasıl silebilirim?
- 3. SCM Maven eklentisinin yapılandırmasında bir git etiketi nasıl belirtilir?
- 4. js listesinden seçme özel html etiketi nasıl eklenir
- 5. Film şeridini kullanırken bazı şeyleri nasıl silebilirim?
- 6. Maven sürüm eklentisinin etiket formatı nasıl özelleştirilir? Bizim SVN repo olarak
- 7. Etiket etiketi sarıcısı olmadan uluslararası etiket etiketini alın
- 8. listesinden
- 9. Jenkins'de parametreli yayımlama nasıl yapılır? SSH eklentisinin Etiket alanı üzerinden yayınlama kullanılarak nasıl kullanılır?
- 10. Yii'deki satırları nasıl silebilirim?
- 11. NSView'ın yeniden çizilmesini mümkün kılmak için bir etiketi nasıl yeniden boyutlandırabilir veya silebilirim?
- 12. En iyi uygulama: özel jsp etiketi veya etiket eklensin mi?
- 13. Tüm html etiketlerini bir diziden nasıl silebilirim?
- 14. NFC etiketi nasıl algılandı kaldırıldı
- 15. MSBuild eklentisinin Zip görevi nasıl kullanılır?
- 16. Bir UIStepper ile iki etiket nasıl etkilenir
- 17. Tüm Flask oturumlarını nasıl silebilirim?
- 18. Bazaar'da dönüştürülmemiş dosyaları nasıl silebilirim?
- 19. jenkins'i linux'tan tamamen nasıl silebilirim
- 20. Github'da bir dalı nasıl silebilirim?
- 21. Tablodaki ters kopyaları nasıl silebilirim
- 22. iPad desteğini AppStore'dan nasıl silebilirim
- 23. Yetim Kubernetleri Pod'larını Nasıl Silebilirim
- 24. angularjs'de $ rootScope değişkenini nasıl silebilirim?
- 25. Postgresql'de saklı yordamı nasıl silebilirim?
- 26. etiketi V3
- 27. docker'dan etiket değeri edinin
- 28. Symfony 2'de etiket nasıl uygulanır?
- 29. Tablo filtresi jQuery eklentisinin değiştirilmesi
- 30. Gmail tarzı bir etiket seçiciyi nasıl uygularım?
Bu nedir? Act_as_tagg * plugin? Bu konuda biraz daha bilgi verebilir misiniz? '@ tag.destroy' etiketi silmeli, başka bir şey müdahale etmelidir. – Veger
Heh yanlışlıkla içine gömüldü: eylemler-olarak-etiketlenebilir – Veger
evet arkadaşının adı daha iyi değiştirirsiniz, aynı "eylemler-etiketlenebilir" eklenti, params adını alarak bunu aldım ve gibi hata gösterebilir –