Plugin Rail Acts_as_taggable_on: من خلال
-
01-10-2019 - |
سؤال
لدي نموذجان:
class Employee < ActiveRecord::Base
has_many :projects
end
class Project < ActiveRecord::Base
acts_as_taggable_on :skills, :roles
end
أود أن أجد موظفين يستخدمون العلامات المرتبطة بمشاريعهم. يدعم المكون الإضافي Geokit-Rails مفهومًا مشابهًا ، باستخدام العلاقة: من خلال ".
من الناحية المثالية ، سأكون قادرًا على:
- حدد العلامات (أي المهارات والأدوار) التي سيتم تضمينها في الظروف
- اطلب الموظفين حسب إجمالي عدد المشاريع مع علامات مطابقة
- تكون قادرًا على الوصول إلى عدد العدا
سيكون موضع تقدير أية أفكار.
المحلول
لست متأكدًا من أن Acts-as-taggable-on لديها دعم لما تبحث عنه مباشرة. ومع ذلك ، قد تكون قادرًا على الحصول على ما تريد معرفة أن طريقة ACTS_AS_TAGGABLE_ON تضيف اثنين has_many
العلاقات مع الخاص بك Project
نموذج. على سبيل المثال ، للعثور على الموظفين حيث تحتوي مهارات المشروع على بعض العلامات التي يمكنك كتابتها
Employee.all(:joins => {:projects => :taggings}, :conditions => ['taggings.context = ? and taggings.tag_id in (?)', 'skills', [4, 8, 15, 16, 23, 42])
بالطبع يتطلب ذلك معرفة معرفات العلامة التي تهتم بها ، بدلاً من ذلك إذا كان لديك أسماء العلامات
Employee.all(:joins => {:projects => :base_tags}, :conditions => ['taggings.context = ? and tags.name in (?)', 'skills', ['skill_a', 'skill_b', 'skill_c'])
قد تكون قادرًا على توسيع نطاق ذلك للقيام بالتهم المختلفة التي تبحث عنها أيضًا.
لا تنتمي إلى StackOverflow