الكائن يرفض حفظ التغييرات في القضبان IRB
-
27-09-2019 - |
سؤال
صباح الخير جميعا،
لدي ارتباط أعمل عليه ، ولسبب ما ، لا يمكنني الحصول عليها لحفظ التغييرات على الكائن المعني عندما أقوم بتصحيحه في IRB. كنت أتساءل عما إذا كان أي شخص يمكن أن يشير إلى مشكلتي.
ها هي الجمعية:
class User < ActiveRecord::Base
has_and_belongs_to_many :affiliates
has_one :managed_affiliate, :class_name => "Affiliate", :foreign_key => "manager_id"
end
class Affiliate < ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :manager, :class_name => "User"
#The affiliates table has a foreign key field of manager_id
end
عندما أقوم بإطلاق IRB ، يمكنني الحصول على مستخدم. يمكنني ضبط المستخدم المدير _affiliate على ما يرام. ومع ذلك ، عندما أنقذ ، لا ينعكس ذلك على الإطلاق في التابعة - ليس له مدير. وبالمثل ، يمكنني تعيين مدير التابعة على ما يرام (Affiliate.first.manager = user.first). يعود مثل كل شيء على ما يرام ، ولكن عندما أذهب لحفظه ، ببساطة يعيد "خطأ". إذا قمت بتنشيط وظيفة تسجيل IRB ، فهذا هو الإخراج:
SQL (0.1ms) BEGIN
SQL (0.2ms) ROLLBACK
هل هناك أي سبب واضح لعدم توفير هذه الارتباط بشكل صحيح؟
أيضا ، هنا مخطط لجدول الشركات التابعة:
create_table "affiliates", :force => true do |t|
t.string "name"
t.string "website"
t.integer "market_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "logo_file_name"
t.string "logo_content_type"
t.integer "logo_file_size"
t.boolean "track_subs"
t.integer "manager_id"
end
شكرا لك على أي مساعدة.
المحلول
ActiveRecord::Base#save
سيعود خطأ في حالة فشل التحقق أو إن وجد before_*
عمليات الاسترجاعات على النموذج تُرجع False.