سؤال

ولدي has_many: من خلال علاقة تربط اللاعبين للفرق من خلال إدارات

.

وأريد أن يكون عداد على الطاولة فرق (قليلا مثل مخبأ العداد) أن يقول لي كم عدد الجمعيات الجديدة التي حدثت منذ بداية الأسبوع. بالطبع عمل مخبأ مكافحة متعود لأنها سوف تعطي دائما كل الجمعيات التي تم إنشاؤها من أي وقت مضى.

ولقد حاول تحديث فريق يرتبط بها من داخل نموذج إدارات. هذا ينجح أبدا. على الرغم من الزيادة في الفريق المصاحب يظهر ليتم حفظها OK، بعد أن يتم إنشاء ارتباطي العداد لا يزال 0.

وحاولت أيضا باستخدام مراقب. المراقب حصلت يسمى كما كنت أتوقع، وكنت قادرا على استرداد الفريق، ولكن أية تحديثات لذلك، مرة أخرى، لم يتم حفظ.

وأنا متأكد أنا في عداد المفقودين شيء واضح! ما هو القضبان طريقة لتنفيذ ذلك؟

والإعداد لي جيثب لتوضيح المشكلة، تشغيل أشعل النار المواصفات ستفشل.

http://github.com/steveybaby/assoc_problem

هل كانت مفيدة؟

المحلول

في المواصفات الخاصة بك:

وfanteam_spec.rb

it "should be able to create a fanteam" do
    @fanteam.save
    @fanteam.changes.should be(0)
    @fanteam.should be_valid
    @fanteam.players << Factory.build(:player)

    @fanteam.reload # this is what you are forgetting

    @fanteam.changes.should be(1)
  end

وفي الأساس مراقب الخاص بتحديث نفس السجل، لكن ليس على نفس الكائن.

نصائح أخرى

وأظن أن المشكلة هي أنك اسمه changes مجال مكافحة، التي هي بالفعل وسيلة أكتيفيريكورد للتفتيش تغييرات على سمات رقما قياسيا منذ آخر حفظ. حاول تغيير اسم هذا المجال، ومعرفة ما إذا كان يعمل التعليمات البرمجية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top