从HABTM关系返回的多个结果

时间:2015-03-29 13:11:55

标签: ruby-on-rails ruby ruby-on-rails-4 has-and-belongs-to-many

我正在尝试在我的视图中显示包含在link_to中的HABTM关系中的单个数据,但它似乎多次返回相同的结果并且每当我添加帖子时增加1。

  

实施例

     

它将返回'Category:Comedy',然后当我创建另一个帖子时   如果属于同一类别,它将返回“类别:喜剧喜剧”等   上。

对于我的生活,我不知道为什么会发生这种情况。

Category.rb

class Category < ActiveRecord::Base
    has_and_belongs_to_many :posts
end

Post.rb

class Post < ActiveRecord::Base
    has_and_belongs_to_many :categories
    belongs_to :user
end

index.html.erb

    <% post.categories.each do |category| %>
      <% category.posts.each do |post| %>
        <%= link_to category.name, category_path(category) %>
      <% end %>
    <% end %>

posts_controller.rb

  def create
    @post = current_user.posts.build(post_params)

    respond_to do |format|
      if @post.save
        format.html { redirect_to @post, notice: 'Post was successfully created.' }
        format.json { render :show, status: :created, location: @post }
      else
        format.html { render :new }
        format.json { render json: @post.errors, status: :unprocessable_entity }
      end
    end
  end

任何帮助都会很棒!

由于

1 个答案:

答案 0 :(得分:1)

我不确定你为什么要运行两个循环来显示类别,所以可能会删除内部循环不会重复类别链接。

<% post.categories.each do |category| %>
  <%= link_to category.name, category_path(category) %
<% end %>