我的网站有类别和子类别,这里是我在我的seeds.rb,在那里,我创建了一个名为“视频和动画”主类别和子类别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的增值产品变为一个数字(整数,因为它应该)。
问:我如何显示我的意见的范畴,所以,当有人点击,他获得该类别的所有产品。 我如何显示所有遵循相同的原则的子类别。 这里是我试图把我的看法
<% Category.all.each do |category| %>
<%= link_to category.name, gigs_path(category: category.name) %>
<% end %>
<% Subcategory.all.each do |subcategory| %>
<%= link_to subcategory.name, gigs_path(subcategory: subcategory.name) %>
<% end %>
奇怪的是,当我把我的产品控制器,该
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 < ActiveRecord::Base
acts_as_votable
belongs_to :user
belongs_to :subcategory
has_attached_file :image, :styles => { :medium => "300x300>" }
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
end
感谢您的时间。