Ruby on rails 按类别显示所有帖子
我有一个帖子模型和一个分类模型Ruby on rails 按类别显示所有帖子,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我有一个帖子模型和一个分类模型 class Category < ActiveRecord::Base has_many :posts attr_accessible :name end Class Post < ActiveRecord::Base belongs_to :category attr_accessible :comments, :title, :category_id, :user_id, :photo end 我想实现的是单击一个类别,然后它将
class Category < ActiveRecord::Base
has_many :posts
attr_accessible :name
end
Class Post < ActiveRecord::Base
belongs_to :category
attr_accessible :comments, :title, :category_id, :user_id, :photo
end
我想实现的是单击一个类别,然后它将显示属于该类别的所有帖子,此时单击我得到的类别链接
Mysql2::Error: Unknown column 'posts.name' in 'where clause': SELECT `posts`.* FROM `posts` WHERE `posts`.`name` = 'Ruby'
你可以用同样的方法来做
<% @categories.each do |c| %>
<li><%= link_to c, blog_path(:category_id => c.id) %></li>
<% end %>
你可以用同样的方法来做
<% @categories.each do |c| %>
<li><%= link_to c, blog_path(:category_id => c.id) %></li>
<% end %>
你必须更换这条线
@posts = Post.where(:name => params[:name])
与
你必须更换这条线
@posts = Post.where(:name => params[:name])
与
您还没有说明您的问题吗?:)我在问题的底部添加了一些小的更新,但我认为这很直接?我想点击一个分类链接,即Ruby,然后它会显示所有具有该分类的帖子。看起来你的帖子表没有名称列。您添加了列并运行迁移了吗?@Neo是的,这是因为名称是类别模型中的一个属性,而不是posts模型,我正在尝试使用if/else语句根据您在上一个问题中提供的答案构建您的问题:)我在问题的底部添加了一些小的更新,但我认为这很直接?我想点击一个分类链接,即Ruby,然后它会显示所有具有该分类的帖子。看起来你的帖子表没有名称列。你添加了列并运行迁移了吗?@Neo是的,这是因为名称是类别模型中的一个属性,而不是posts模型,我试图使用if/else语句根据你在上一个问题中提供的答案进行构建
@posts = Post.where(:name => params[:name])
category = Category.where(:name => params[:name]).first
@posts = category.posts