すでに述べたように、私は というタイトルのモデルを持っていますCategory
class Category < ActiveRecord::Base
belongs_to :parent, :class_name => "Category"
has_many :children, :class_name => "Category", :foreign_key => "parent_id"
has_many :products
attr_accessible :description, :title, :parent
end
特定のタイトルを持つ特定の親を持つすべての子を選択する必要があります。 Categories
Category
Category.where(:category=>{'parents_categories'=>{:title=>'tea'}}) #wrong
必要に応じて機能していません。実際にはまったく機能していません:
Category Load (0.5ms) SELECT `categories`.* FROM `categories` WHERE `parent`.`title` = 'tea'
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'parent.title' in 'where clause': SELECT `categories`.* FROM `categories` WHERE `parent`.`title` = 'tea'
調査を行いましたが、何も見つかりませんでした。どうすれば解決できますか?
更新: モデルにスコープを作成する必要があります。これにより、 (正確に)Category
呼び出しを行うことができ、タイトルが ' ' の親に属するすべての子カテゴリが返されます。Category.of_tea
Category
tea