Новое для рельсов, и я следую проекту Depot, найденному в веб-разработке Agile с рельсами 3.1. Все было в порядке, пока я не потерялся, когда книга использовала метод "build".
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.line_items.build(product: product)
Мои поисковые запросы помогли мне понять, что метод .build - это просто более чистый способ создания строки в таблице (с ассоциацией между таблицами). Но в приведенном выше коде я ожидал, что код будет выглядеть примерно так:
@line_item = @cart.line_items.build(product_id => params[:product_id])
Я не понимаю, почему автору пришлось хранить всю строку продуктов (product = Product.find(params [: product_id])) вместо того, чтобы просто получить product_id...
Есть ли еще больше, чем я могу понять?