У меня есть Пост Модель:
class Post < ActiveRecord::Base
belongs_to :user
has_many :taggings, :dependent => :destroy
has_many :tags, :through => :taggings
attr_writer :tag_names
after_save :assign_tags
before_create :init_sort_column
def tag_names
@tag_names || tags.map(&:name).join(" ")
end
private
def assign_tags
self.tags = []
return if @tag_names.blank?
@tag_names.split(" ").each do |name|
tag = Tag.find_or_create_by_name(name)
self.tags << tag unless tags.include?(tag)
end
end
end
и тег модель:
class Tag < ActiveRecord::Base
has_many :taggings, :dependent => :destroy
has_many :posts, :through => :taggings
has_many :subscriptions
#has_many :subscribed_users, :source => :user, :through => :subscriptions
end
Вот как я перечисляю теги:
<div class="top-tags">
<% @tags.each do |tag| %>
<span class="tag-name"><%= tag.name %></span>
<span class="tag-count"><%= tag.posts.count %></span>
<% end %>
</div>
Я хочу, чтобы пользователь перешел на страницу, отображающую все сообщения, отмеченные тегом, по которому он щелкнул (например, StackOverflow).
Как это сделать?
EDIT
Вот что я пробовал:
def tagged
@tag = Tag.find_by_name(params[:tagged_as])
@posts = @tag.posts.paginate
end
Я планирую отображать сообщения в виде под названием tagged.html.erb
Но теперь я застрял там. Я не уверен, как использовать :tagged_as
в сочетании с link_to
.