Во-первых, я считаю, что вы хотите отношения has_many, а не has_one.Я не могу представить ситуацию, когда вы хотели бы, чтобы категории имели большинство одну дочернюю категорию.Предыдущий ответ также дает вам только одно направление - категории знают о своих родителях, но не о своих детях.
Полное решение достаточно простое.Таблица категорий должна иметь столбец category_id, а модель должна выглядеть следующим образом:
class Category < ActiveRecord::Base
belongs_to :category
has_many :categories
end
Если вы хотите пойти дальше и назвать их родителями и детьми, вы можете:
class Category < ActiveRecord::Base
belongs_to :parent, :class_name => 'Category', :foreign_key => 'category_id'
has_many :children, :class_name => 'Category', :foreign_key => 'category_id'
end
Удачи в вашем приложении!