Rails, помечающий гем, который поддерживает пометку модели другими моделями?
Большинство драгоценных камней в Rails поддерживают тегирование объекта произвольными строками. (В дополнение к этому) Я хотел бы пометить объект с другими объектами.
Представьте, что я создаю сайт вопросов и ответов для любителей собак: я хочу, чтобы человек мог задать вопрос. Затем этот человек может пометить этот вопрос произвольными строками (как это поддерживает каждый самоцвет для пометки), НО, если вопрос касается конкретной породы собак или пород, я хотел бы, чтобы пользователь дополнительно мог пометить вопрос с помощью породы собак. Породы собак - это модель в моем веб-приложении, с множеством собственных метаданных и ассоциаций.
Все найденные мной Rails тэги просто были расценены как слова; Я хочу знать, существует ли драгоценный камень, который поддерживает теги как сами объекты / модели.
Я, конечно, знаю, что могу справиться самостоятельно, просто написав некоторую логику ассоциации has_many, но что хорошо во многих тегах Rails с тегами, так это то, что они поставляются с множеством методов, которые помогают легко запрашивать и отображать данные тега.
1 ответ
Я не знаю ни одного, который бы делал именно то, что вы просите, но гем act_as_taggable_on поддерживает теги в разных контекстах. Возможно, вы могли бы создать контекст тега для породы собак, разрешить выбор породы на основе вашей модели и затем использовать имя или идентификатор для записи модели породы в качестве тега в контексте породы. Вы можете найти больше информации здесь, но вы бы добавили что-то вроде этого в вашу модель:
acts_as_taggable #for your normal tags
acts_as_taggable_on :breeds
Тогда вы можете найти предметы, помеченные породой, используя:
Question.tagged_with('border collie', :on => :breeds)
Я знаю, что это не совсем то, что вы искали, но это позволяет вам использовать методы поиска существующего драгоценного камня, в то же время позволяя сегментировать ваши теги так, как вы описали.