У меня есть присоединиться таблицаКак сделать мульти модель tag_cloud с помощью таблицы соединений?
create_table "combine_tags", force: true do |t|
t.integer "user_id"
t.integer "habit_id"
t.integer "valuation_id"
t.integer "goal_id"
t.integer "quantified_id"
end
, целью которого является сделать tag_cloud работу для нескольких моделей. Я положил это в application_controller
def tag_cloud
@tags = CombineTag.tag_counts_on(:tags)
end
Мой tag_cloud выглядит следующим образом:
<% tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class| %>
<%= link_to tag.name, tag_path(tag), :class => css_class %>
<% end %>
# or this depending on which works:
<% tag_cloud CombineTag.tag_counts, %w[s m l] do |tag, css_class| %>
<%= link_to tag.name, tag_path(tag.name), class: css_class %>
<% end %>
У меня есть эта линия в _form всех моделей: <%= f.text_field :tag_list %>
combine_tags_helper
module CombineTagsHelper
include ActsAsTaggableOn::TagsHelper
end
модели
class CombineTag < ActiveRecord::Base
belongs_to :habit
belongs_to :goal
belongs_to :quantified
belongs_to :valuation
belongs_to :user
acts_as_taggable
end
class Habit < ActiveRecord::Base # Same goes for other models
has_many :combine_tags
acts_as_taggable
end
Пожалуйста, дайте мне знать, если вам нужна дополнительная объяснение или code, чтобы помочь вам помочь мне :)
Можете ли вы сказать мне, вкратце, какое точное поведение вы ищете для реализации? –
Я знаю, как создать tag_cloud с одной моделью, но я не могу заставить ее работать с несколькими моделями, если бы я создал тег под названием «run» под привычками и под целями, которые tag_cloud будет представлять собой использование тега пропорционально. Помогает ли это @ArupRakshit? –
Можете ли вы рассказать мне об использовании? зачем вам _join_table_ пытаться понять? –