1
私はsinatraとactivereord(sinatra-activerecord
gemを使用して)を使ってオンラインストアを作ろうとしていますが、カテゴリ(サブカテゴリやもの)のツリーを生成する方法については頭を悩ませています。sinatraのカテゴリツリーとactiverecord?
カテゴリデータベースは単なるカテゴリ名とPARENT_IDが含まれており、次のようにactivrecordモデルは次のとおりです。
class Category < ActiveRecord::Base
validates_presence_of :name
validates_uniqueness_of :name
has_many :sub_categories, :class_name => 'Category',
:foreign_key => 'parent_id', :dependent => :destroy
has_many :products, :dependent => :destroy
belongs_to :parent_category, :class_name => 'Category'
end
は、どのように私は(何かが私はネストされたULタグとしてテンプレートに持つことができるということについて行くだろう私はそれが違いを作る場合hamlを使用しています)?
申し訳ありませんが、私は本当にこれらのデータ構造を使ったことはありません。
'@sub = Category.find(...)。sub_categories'のようなものではなく、テンプレート内で' @sub'を繰り返して各サブカテゴリを表示します。私はActiveRecordを使用していないので、あまりよく分かりません – daddz
@daddz:私はそれをやろうとしていましたが、それは有限量のサブカテゴリに制限されています。私はむしろそれを持っているので、どのように多くのカテゴリ(私は再帰的なものをしたいことを意味すると思うが、私はわからない) –
それはちょうどサブカテゴリー現在選択されているカテゴリの毎回すべてのサブカテゴリを繰り返す必要があるため、カテゴリの深度が高いほど要求が長くなると思います。 – daddz