从 HABTM 关系返回多个结果
Multiple results returning from a HABTM relationship
我试图在我的视图中显示来自 HABTM 关系的单一数据,包裹在 link_to 中,但它似乎多次返回相同的结果,并且每次我都增加 1添加一个post。
Example
It will return 'Category:Comedy', then when I create another Post
with the same category it will return 'Category:Comedy Comedy' and so
on.
我这辈子都不知道为什么会这样。
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
任何帮助都会很棒!
谢谢
我不确定你为什么 运行 显示类别的两个循环,所以可能是删除了内部循环不会重复类别链接。
<% post.categories.each do |category| %>
<%= link_to category.name, category_path(category) %
<% end %>
我试图在我的视图中显示来自 HABTM 关系的单一数据,包裹在 link_to 中,但它似乎多次返回相同的结果,并且每次我都增加 1添加一个post。
Example
It will return 'Category:Comedy', then when I create another Post with the same category it will return 'Category:Comedy Comedy' and so on.
我这辈子都不知道为什么会这样。
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
任何帮助都会很棒!
谢谢
我不确定你为什么 运行 显示类别的两个循环,所以可能是删除了内部循环不会重复类别链接。
<% post.categories.each do |category| %>
<%= link_to category.name, category_path(category) %
<% end %>