modelinde :primary_image_id
adlı özelliğe sahip bir modelim var. Bir user_item
has_many
user_item_images
. primary_image_id
'un amacı, user_item_images
'dan birinin kimliğine eşit olarak ayarlamaktır, böylece mantığı kullanabilirim, böylece nesne görünümde kullanıcı tarafından silinemez. Bu öznitelik kümesi olmadan bir user_item
A asla olmamalı veya en az özniteliği ayarlanana kadar birkaç saniye var olmalıdır. Formumda user_item
, user_item_images
ile birlikte oluşturulur.Raylar - her ikisi de birlikte oluşturulduktan sonra alt öğenin ana özniteliğini ayarlayın
user_item_image.id
yalnızca oluşturulduktan sonra ayarlanmış gibi görünüyor. Ben user_item
def set_primary_image_id
self.primary_image_id = self.user_item_images.first.id
end
üzerinde after_create
geri arama yapıyor denedim ama çocuk yarattı wan't ve böylece bir kimliği olmadığı için, ben tahmin ediyorum çalışmak görünmüyordu.
ben, user_item_image
modeline bir after_create
geri arama yapmak gibi bir şey sanırım:
def set_user_item_primary_image_id
user_item = self.user_item
user_item.primary_image_id = user_item.user_item_images.first.id
end
ama gerçekten bir user_item_image
oluşturulduğunda her zaman yapılmamalıdır çünkü bu overkill gibi görünüyor.
Gönderme sırasında "user_item" öğesine ait bir "user_item" yanı sıra "user_item_images" oluşturan yuvalanmış bir form var. 'After_create' öğesini 'user_item' modeline koyarsam, bu işlem tüm işlemden sonra olur mu yoksa user_items'in çocukları olmadan önce olur mu? – user4584963
'build' işlevini kullanarak' after_create', her şey gereken kimliklere sahip olduğunda çalışır. –