Выводить пользователя на страницу, отображающую все сообщения, помеченные тегом, по которому он щелкнул (Rails)? - PullRequest
0 голосов
/ 15 марта 2012

У меня есть Пост Модель:

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.

1 Ответ

1 голос
/ 15 марта 2012

Вы можете включить дополнительные параметры в ссылку, передав их в качестве параметров соответствующему помощнику маршрута, например:

<%= link_to tag.name, tagged_posts_path(:tagged_as => tag.name) %>

Если вы не уверены, какие помощники маршрута у вас есть, вы можете запустить rake routes, чтобы вывести их все (самый левый столбец в списке).

Если вы еще этого не сделали, я бы рекомендовал прочитать Руководство по Rails и для маршрутов: http://guides.rubyonrails.org/routing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...