无法在视图Rails 4中显示我的类别和子类别

我的网站有分类和子类别,这里是我在我的种子.rb,我创建了一个名为“video和动画”的主要类别,和4个子类别,比我将子类别分配到主类别。

@category = Category.create!(name: "Video and animation") ["Intro", "Animation & 3D", "Editing and Post Production", "Other"].each do |name| @subcategory = Subcategory.create!(name: name, category_id: @category.id) end 

它运行良好,在我的rails控制台中,我看到一切正常,添加产品的category_id更改为数字(整数应该如此)。

问题:如何在我的视图中显示该类别,因此当有人点击它时,他会获得该类别的所有产品。 我如何按照相同的原则显示所有子类别。 以下是我试图提出意见的内容

       

奇怪的是,当我把我的产品控制器放进去时

 def index @category_id = Category.find_by(name: params[:category]) @gigs = Gig.where(category_id: @category_id).order("created_at DESC") @subcategory_id = Subcategory.find_by(name: params[:subcategory]) @gigs = Gig.where(subcategory_id: @subcategory_id).order("created_at DESC") end 

它显示了我想要的所需子类别,但主要类别仍为空。 如果我把它放入我的控制器

 def index @category_id = Category.find_by(name: params[:category]) @subcategory_id = Subcategory.find_by(name: params[:subcategory]) @gigs = Gig.where(category_id: @category_id).order("created_at DESC") end 

主要类别根据需要起作用,但子类别仍为空。

注意:在这两种情况下,在视图中,在任何人点击任何内容之前,我会看到显示的正确类别和子类别。

这是我在3个模型中的每一个

 class Category < ActiveRecord::Base has_many :subcategories end class Subcategory < ActiveRecord::Base belongs_to :category has_many :products end class Product  { :medium => "300x300>" } validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ end 

感谢您的时间。

在控制器动作中

 @categories = Category.includes(:subcategories) 

添加视图

 <% @categories.each do |category| %> <%= link_to category.name, gigs_path(category: category.name) %> <% category.subcategories.each do |subcategory| %> <%= link_to subcategory.name, gigs_path(subcategory: subcategory.name) %> <% end %> <% end %> 

在控制器中更改索引方法

 def index if params[:category] c_id = Category.find(name: params[:category]) @gigs = Gig.where(category_id: c_id).order("created_at DESC") elsif params[:subcategory] subc_id = Subcategory.find(name: params[:subcategory]) @gigs = Gig.where(subcategory_id: subc_id).order("created_at DESC") end end