これはVestal Versionsのバグですか、それとも私は何か問題があります。

ruby-on-rails vestal-versions
これはVestal Versionsのバグですか、それとも私は何か問題があります。

私はVestal Versions(http://github.com/laserlemon/vestal_versions)でバグを発見したかもしれないと思います – それは `revert_to`の振る舞いが同じオブジェクトに対して過去に行った復帰に依存するようです。 これが一例です。

>> a = Annotation.find(1384)
=> #
>> a.revert_to(9)
=> 9
>> a.body
=> #


>> a = Annotation.find(1384)
=> #
>> a.revert_to(8)
=> 8
>> a.body
=> #
>> a.revert_to(:last)
=> 11
>> a.revert_to(9)
=> 9
>> a.body
=> #

つまり、新たにロードされた注釈から `revert_to(9)`を実行すると、bodyフィールドには、「ただぶらぶらしている」テキストで始まるRDiscountオブジェクトが含まれます
– \ “playing possum \”-at the store “(これは、ボディが
バージョン9)

しかし、新たにロードした注釈から revert_to(8)`に戻った場合、注釈の本体、 `revert_to(:last)、および `revert_to(9)`を確認してください。バージョン9では注釈の本体は間違っています。それはバージョン8)からのアノテーションのボディと一致するでしょう

何かご意見は?

  1  0


ベストアンサー

これはvestal_versionsのバグではありません。バージョンが変更された後も、あなたのアソシエーションを再ロードしないレールです。 あなたの Annotation`があなたの RDiscount`のIDを保持していると仮定すると、次のことが起こります:

  1. あなたはxの RDiscount IDを持つ` Annotation` “a”を取得します。

  2. “a”を前のバージョンに戻すと、 RDiscount IDはyに変わります。

  3. a.body`を呼び出して、レールに RDiscount`オブジェクトをロードさせます。
    ID y。

  4. “a”を :last`に戻すと、 RDiscount` IDは再びxに変わります。

  5. あなたは再び a.body`を呼び出しますが、railsはすでに RDiscount`をロードしています
    オブジェクトであり、代わりにこのオブジェクトを返します。

3


タイトルとURLをコピーしました