我正在尝试显示具有当前类别的cat_id的帖子,而我并没有在一起点击正确的内容我猜。让我解释一下;
每个帖子在DB中都有一个cat_id,它将是该类别的ID。在我的页面上,如果我点击某个类别,则网址会变为类似的内容; http://domain.com/cat/1它应该显示类别1的所有帖子。
到目前为止,我已经尝试了以下但没有成功;
CONTROLLER
def show
@cat = Cat.find(params[:id])
@cat = Cat.all
@posts = @cat.posts
end
查看
<div id="posts">
<% @posts.limit(50).each do |post| %>
<h1><%= post.title %></h1>
<% end %>
</div>
上述情况没有成功。
我也试过了;
CONTROLLER
def show
@cat = Cat.find(params[:id])
@post = Post.find(params[:id])
end
查看
<div id="posts">
<% @bin.posts(:cat_id => cat.id).limit(50).each do |post| %>
<h1><%= post.title %></h1>
<% end %>
</div>
也没有运气。我知道我很亲近,只是无法绕过它。
答案 0 :(得分:2)
试试这个,我所做的就是删除用@cat
覆盖Cat.all
并使用其余查询将帖子限制移动到控制器:
<强> CONTROLLER 强>
def show
@cat = Cat.find(params[:id])
@posts = @cat.posts.limit(50)
end
查看强>
<div id="posts">
<% @posts.each do |post| %>
<h1><%= post.title %></h1>
<% end %>
</div>
答案 1 :(得分:0)
我假设您正在使用正确的模型关联。
如果您已设置模型以使帖子属于某个类别且某个类别包含许多此类帖子:
发布模型:
class Post < ActiveRecord::Base
belongs_to :cat
end
猫模型:
class Cat < ActiveRecord::Base
has_many :posts
end
然后你只需要使用这样的关联:
控制器:
def show
@cat = Cat.find(params[:id])
@posts = @cat.posts
end
查看:
<div id="posts">
<% for post in @posts do %>
<h1><%= post.title %></h1>
<%end%>
</div>