metoda kompilacji na ruby ​​na szynach

Nowość na szynach i śledzę projekt Depot znaleziony w tworzeniu stron internetowych Agile z szynami 3.1. Wszystko było w porządku, dopóki nie zgubiłem się, gdy książka używała metody „budowania”.

@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.line_items.build(product: product)

Moje wyszukiwania w Google skłoniły mnie do zrozumienia, że ​​metoda .build jest po prostu czystszym sposobem tworzenia wiersza w tabeli (z powiązaniem między tabelami). Ale w powyższym kodzie oczekiwałem, że kod będzie wyglądał mniej więcej tak:

@line_item = @cart.line_items.build(product_id => params[:product_id])

Nie rozumiem, dlaczego autor musiał przechowywać cały wiersz produktów (product = Product.find (params [: product_id])) zamiast tylko uzyskać id_produktu ...

Czy jest coś więcej niż to, co mogę zrozumieć?

questionAnswers(2)

yourAnswerToTheQuestion