Из главы 12 Задача 4: Захват заказа.Гибкий веб-разработчик с Rails 4: откуда берется параметр @cart?
Откуда взялся параметр @cart из @ order.add_line_items_from_cart (@cart), который находится в контроллере заказов, и какие значения передаются через этот метод?
class OrdersController < ApplicationController
def create
@order = Order.new(order_params)
@order.add_line_items_from_cart(@cart)
end
class Order < ActiveRecord::Base
has_many :line_items, dependent: :destroy
def add_line_items_from_cart(cart)
cart.line_items.each do |item|
item.cart_id = nil
line_items << item
end
end
end
LineItem имеет один-ко-многим ассоциируется как Корзина и порядок. Так как LineItem имеет связь с Cart и Order, означает ли это, что он имеет доступ к переменной экземпляра в контроллере Cart и Order?
Как они в состоянии получить доступ или использовать @cart переменную экземпляра из другого контроллера, который не Корзина
Дополнительный вопрос
Какие ценности, добавленными line_items от «пункта»
def add_line_items_from_cart(cart)
cart.line_items.each do |item|
item.cart_id = nil
line_items << item
end
end
Я действительно новичок в Rails, поэтому я не уверен, что даже задаю правильный вопрос.
Вы проверили код формы ?? –
Я предполагаю, что '@ cart' производится с использованием идентификаторов продуктов, которые хранятся в сеансе - это, вероятно, происходит с контроллером приложения (который обычно используются у других контроллеров) – Swards
или, может быть, это просто файл before_action в том же файле – pazinjanka