2012-03-05 6 views
1

私はちょうど標準のActiveRecordは、実際にあなたがデータベースに接続せずにActiveRecordモデルをインスタンス化する方法はありますか?

person = Person.new(:name => "test") 

を行うとき、私はActiveRecordのモデルのために利用可能なフィールドを確認するためにこれを行い疑いデータベースを打つことに気づきました。

しかし、私たちのレガシーデータベースはたまにしか利用できません。つまり、私たちのテストスイートは常に実行できません。データベースなしでこの作業を行うにはどんなトリックがありますか?

それが不可能な場合は、我々はいくつかの選択肢を考えた:

  • は、この問題を解決し、他のORM(DataMapper
を使用し、1つの
  • 上のデータベースと作業のローカルコピーを持っています

    ご提案は大歓迎です。

  • 答えて

    1

    ローカルコピーの操作は、タッチしたデータが他の場所から変更されていない場合にのみ可能です。そうしないと、すぐにデータベースの災害が発生します。

    あなたの疑惑も正しいです。 ActiveRecordはデータベースをチェックして、接続が必要なフィールドを探します。私はあなたがActiveRecordを使い続けたいときにこれを解決する方法があるとは思わない。根本的な問題を解決し、常に利用可能なデータベースを実行する必要があると私は思います!

    0

    あなたはまた、read_attribute/write_attribute

    を使用することができ attr_accessor :your_method_name をお試しください
    関連する問題