مرحباً،
لقد حاولت تشغيل أوامر في rails c مثل User.find(1).update(ip_address: nil, topics_viewed: nil) لتحديث الأشياء في القائمة أدناه - ومع ذلك، استمررت في تلقي أخطاء:
كيف يمكنني تغيير هذه القيم؟
شكراً.
مرحباً،
لقد حاولت تشغيل أوامر في rails c مثل User.find(1).update(ip_address: nil, topics_viewed: nil) لتحديث الأشياء في القائمة أدناه - ومع ذلك، استمررت في تلقي أخطاء:
كيف يمكنني تغيير هذه القيم؟
شكراً.
ما هي الأخطاء التي تحصل عليها؟
بعض هذه الأشياء موجودة في جداول/نماذج أخرى. عناوين البريد الإلكتروني، على سبيل المثال، موجودة في جدولها الخاص، لذا تحتاج إلى تحديثها هناك.
ما المشكلة التي تحاول حلها؟
أحاول فقط إعادة تعيين الإحصائيات، وأريد التخلص من topics_viewed و posts_read و read_time و last_emailed. لست مهتمًا بتفاصيل المستخدم حيث يمكن تغييرها باستخدام الواجهة، فقط القيم التي تؤثر على ملف تعريف المستخدم ولكن لا يمكن تحريرها.
لا يمكن تحريرها لأنها ليست جزءًا من نموذج المستخدم.
يوجد نموذج يتتبع المواضيع التي شاهدها المستخدم (TopicViewItem)، لذا ستحتاج إلى مسحها (ربما TopicViewItem.destroy_all – لا – هذا لا يعمل.) ثم تشغيل أي تحديثات لذلك. وإذا تم إرسالها عبر البريد الإلكتروني، فإن آخر مرة تم إرسالها فيها عبر البريد الإلكتروني ستكون آخر مرة تم إرسالها فيها.
يوجد نموذج PostTiming يتتبع المشاركات التي تمت قراءتها، و
وقت القراءة. آه، يمكنك البحث في المصدر عن PostTiming والعثور على شيء مثل
PostTiming.destroy_for(current_user.id, [topic_id])
لذا هذه بداية. ربما هذا:
PostTiming.destroy_for(1, PostTiming.where(user_id: 1).pluck(:topic_id).uniq))
هناك بعض مهام ensureconsistency التي قد تكون طريقة لتحديثها، لكنني لست متأكدًا تمامًا.
في هذه الحالة، هل من الممكن دمج حساب مسؤول عبر وحدة التحكم؟ أنا على علم بأنه ليس عبر واجهة المسؤول.
فقط قم بإزالة امتيازات المسؤول الخاصة بهم وقم بذلك؟
ولكن يبدو أنه يمكنك القيام بذلك باستخدام مهمة rake: Merging user accounts
شكرًا على ذلك - لست متأكدًا مما إذا كان من الممكن إلغاء امتيازات المسؤول للمسؤول الأصلي.
إذا كان مطورًا (تم تعيين ذلك في app.yml) فأعتقد أنك على حق.
أيضًا، لقد لاحظت للتو مهمة الـ rake هذه!
rake destroy:stats
يبدو أن هذا قد يفعل ما تريده.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.