before_add رد باستخدام nested_attributes
-
22-07-2019 - |
سؤال
ونظرا لما يلي:
وFoo has_many :bars, :through => :baz
و
وFoo accepts_nested_attributes_for :bar
وأريد أن تفعل find_or_create_by_name
عندما أضيف :bar
جديد، ولكن أنا لا أعرف أين أنا يمكن أن يكون نوعا من وظائف before_add
.
وعلى خلفية هذا السؤال هو Bar validates_uniqueness_of :name
، الذي يعطي أخطاء عند محاولة إنشاء Foo
الجديد الذي يستخدم Bar
القائمة.
المحلول
ونجاح باهر يجب أن أكون متعب:
class Foo < ActiveRecord::Base
has_many :bars, :through => :baz, :before_add => :some_callback
def some_callback(b)
#whatnot
end
end
ولكن لا يزال، في الجزء some_callback
، ماذا تفعل؟ لقد حاولت أشياء مثل b = Bar.find_or_create_by_name(b.name)
ولكن هذا لا تعمل إما.
لا تنتمي إلى StackOverflow