سؤال

هذا الرمز ينتج ActivereCordror:

يجب أن تكون عمليات الاسترجاعات رمزًا يدل على طريقة الاتصال ، أو سلسلة يتم تقييمها ، أو كتلة يتم استدعاؤها ، أو كائن يستجيب لطريقة رد الاتصال. "

before_update :check_instock, :unless => Proc.new { |inventory| inventory.needed.nil? } 

def check_instock
  if needed < amount
    instock = true
  else
    instock = false
  end
end

يتم وضع هذا الرمز في نموذج المخزون الخاص بي ، أحاول التعامل مع بعض المنطق قبل الاتصال @stick.update_attributes (وحدة التحكم). في السابق كنت أتصل @stick.update_attributes عدة مرات ، مما أدى إلى ذلك عمل, ، وإن لم يكن بإيجاز.

هتافات!

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

المحلول

before_update :set_instock, :unless => :inventory_not_needed?

private

def set_instock
  self.instock = (needed < amount) ? true : false
end

def inventory_not_needed?
  needed.nil?
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top