متغيرات مثيل الفئة في أكتيفريكورد (روبي على القضبان)

StackOverflow https://stackoverflow.com//questions/9655731

سؤال

أحاول تخزين قيمة في فئة نموذج ، على سبيل المثال ، قيم اثنين من مربعات الاختيار.

اعتقدت أنه يمكنني تخزينها في متغير مثيل فئة ، ومع ذلك ، يتم مسح هذه القيم عندما ينقر المستخدم في مكان آخر على الشاشة.

كيف يمكنني الحفاظ على قيم متغيرات مثيل الفصل.

على سبيل المثال

class Person < ActiveRecord::Base

   def setAge(age)
      @@age = age

   def getAge
      return @@age

ومع ذلك ، يبدو أن العمر فارغ بعد تعيينه.

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

المحلول

إطار القضبان يعيد تحميل الطبقات في development الوضع.يتم فقد أي قيم تم تعيينها في الطلبات السابقة لمتغير الفئة في طلب جديد.إذا قمت بتشغيل الخادم الخاص بك في production الوضع ، سوف تعمل التعليمات البرمجية الخاصة بك.

ما تحاول القيام به هو ممارسة سيئة كما يمكن للطلبات المتزامنة الكتابة فوق الدولة وعندما تفرخ مثيلات متعددة من خادم القضبان الخاص بك هذا الحل لن يعمل (كما ذكر من قبل إلتيمبو)

إذا كنت تحاول أن تستمر الدولة عبر طلبين العميل ، كنت أفضل حالا باستخدام session المتغيرات.

طلب 1

session[:age] = params['age']

الطلب 2

u = User.new
u.age = session[:age]

نصائح أخرى

كما ذكر nash هذا ليس رمز روبي هنا.

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

أيضا العمر الأصوات المراد أن تكون مرتبطة بمثيل شخص بدلا من الفصل.

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