I have a join table
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
whose purpose is to create a tag_cloud function for several models. I put this in application_controller
def tag_cloud @tags = CombineTag.tag_counts_on(:tags) end
My tag_cloud is as follows:
<% tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class| %> <%= link_to tag.name, tag_path(tag), :class => css_class %> <% end %>
I have this line in _form for all models: <%= f.text_field :tag_list %>
combine_tags_helper
module CombineTagsHelper include ActsAsTaggableOn::TagsHelper end
model
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
Please let me know if you need further explanation or code to help you help :)
ruby ruby-on-rails tags rails-activerecord acts-as-taggable-on
AnthonyGalli.com
source share