متد build در ریلز

من کار این متد رو وقتی که داریم از یک رابطه مثلا one_many استفاده میکنیم نمیفهمم ممنون میشم یه توضیح در مورد عملکرد این متد بدین

کاش یکم بیشتر توضیح میدادی و مثال میزدی یادم بیاد. ولی اگر درست یادم بیاد، instance از اون رابطه میسازه (و مثلا میتونی فیلد‌هاش و associationش رو ببینی و تغییر بدی) ولی توی پایگاه‌داده ذخیره نمیکنه و باید بعدش save کنی. توی متد create بیشتر استفاده می‌شد تا اونجا که یادم میاد.

مثال رو با یک عکس اشتراک گذاشتم پس اطلاعات اینجور که شما میگین توی حافظه ذخیره میشه نه توی پایگاه داده درسته؟

اینجور که من متوجه شدم دقیقا مثل new عمل میکنه ولی برای مقدا دادن به فیلد های رابطه ای درسته
؟

ظاهرا دیگه فرقی نمیکنن و میتونی از همون new جای build استفاده کنی. ولی آره با new یک instance‌ می‌ساختی و با build یک instance همراه با association که خودش کلید خارجی هم بسازه برات و توی حافظه هم نگه میداشت.

همین مثالی که اینجا زده:

  • foo.bars.new <=> foo.bars.build
  • Bar.where(:foo_id=>foo.id).new <=> Bar.where(:foo_id=>foo.id).build

و اگر !foo.new_record?

  • foo.bars.new <=> Bar.where(:foo_id=>foo.id).new
1 Likes