Структурировать объекты с помощью методов ActiveRecord? (Рубин на рельсах) - PullRequest
1 голос
/ 21 марта 2011

У меня есть ограниченный набор объектов (20 - 30), которые мне нужно объединить с объектами ActiveRecord.Поместить их в БД просто ужасно, потому что у меня уже есть две другие модели соединения, подключенные к этой модели.

Итак, допустим, у меня есть класс

class Thing < ActiveRecord::Base
  has_many :other_things, :class_name => 'OtherThing'
end

с существующей таблицей.Как бы я мог комбинировать это с классом, не наследующим от ActiveRecord (вот мое лучшее предположение)

class OtherThing < ActiveRecord::Base
  OtherThing = Struct.new(:id, :name, :age, :monkey_fighting_ability)
  belongs_to :thing, :class_name => 'Thing'

  validate :something

  def self.search_for(something)
    MY_GLOBAL_HASH[something].map do |hash|
      instance = OtherThing.new
      hash.each_pair do |k,v|
        instance.send(:"#{k}=", v)
      end
      instance
    end
  end

  #if AR wants to call save
  def save
    return true
  end
  alias save save!

  protected
    def something
      self.errors.add(:monkey_fighting_ability, 'must be unlimited') if self.class.search_for(something).empty?
    end
end

Суть в том, что я хочу использовать методы ActiveRecord и так далее, даже не ударяя по БД.Помощь очень ценится.

1 Ответ

3 голосов
/ 21 марта 2011

Я бы посоветовал прочитать пост «Сделайте любой объект Ruby похожим на активную запись» Иегуды Каца. В нем рассказывается, как преобразовать любой объект в классоподобный класс без поддержки базы данных.

Удачи!

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