В моем приложении у меня есть 3 модели: Item, категория и категоризация определяются следующим образом:Rails запрос включает не работает
class Item < ActiveRecord::Base
attr_accessible :name, :description
has_many :categorizations
has_many :categories, :through => :categorizations
end
class Category < ActiveRecord::Base
attr_accessible :name, :description, :parent, :children, :items, :parent_id
has_many :children, :class_name => "Category", :foreign_key => "parent_id", :dependent => :nullify
belongs_to :parent, :class_name => "Category"
has_many :categorizations
has_many :items, :through => :categorizations
end
class Categorization < ActiveRecord::Base
attr_accessible :category, :item
belongs_to :category
belongs_to :item
end
Однако, делая это:
Category.where(:parent_id => self.id).includes(:items)
не вернет меня больше элементы, связанные с категорией. Что мне здесь не хватает?
Что именно означает «не вернет мне предметы, связанные с категорией»?? Что вы ожидаете от происходящего и что происходит? – Mischa
Я ожидал, что могу получить доступ к элементам в категориях, которые были получены где, но: элементы пустые. – Rui
При использовании 'includes' вы можете получить пустые' items'. Если вы хотите только получить категории, в которых есть элементы, вы должны использовать 'joins', что делает внутреннее соединение. – Mischa