Как использовать объект в памяти при работе с: has_many и: own_to - PullRequest
1 голос
/ 10 января 2011

Я использую Active Record с Rails 3. У меня есть класс User, имеющий has_many Categories.Я хотел бы создать экземпляры категорий от пользователя, который использует тот же пользовательский экземпляр в памяти.

Поведение Active record по умолчанию создает новый экземпляр пользователя для каждой категории.Есть ли способ изменить это поведение?

Вот некоторые фрагменты моего кода.Вы можете заметить, что я пытался использовать: inverse_of, без успеха ...

class Category < ActiveRecord::Base
  attr_accessor :name
  attr_accessible :name, :user

  belongs_to  :user, :inverse_of => :categories
end

class User < ActiveRecord::Base
  attr_accessor :key
  attr_accessible :categories, :key

  has_many :categories, :inverse_of => :user
end

У меня есть следующая спецификация для проверки желаемого поведения:

user = User.first
user.key = @key  # key is an :attr_accessor, not mapped to db

category = user.categories.first
category.user.key.should == user.key  # saddly, it fails.. :(

Есть предложения?

Спасибо, что прочитали мой вопрос!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...