Я нахожусь в процессе создания своего первого приложения для рельсов и нахожусь в беде. Это мой контекст:Как создать несколько моделей с одного контроллера
Я создал контроллер api/v1/orders, который принимает сообщение JSON от третьего лица, содержащего заказ с несколькими позициями. В этом контроллере я создаю порядок и несколько позиций за один раз, используя accepts_nested_attributes_for :line_items, allow_destroy: true
.
Теперь, после создания заказа и позиций, я хочу создать доставку. Моя первоначальная мысль заключается в том, чтобы создать метод в модели Order, потому что все отправления для определенного заказа должны быть созданы одновременно после того, как заказ будет вставлен. Как мне получить доступ к атрибутам заказа в модели?
В моих контроллерах это мой заказ # создать
order = Order.new(
shopify_order_id: params[:id],
shopify_created_at: params[:created_at],
shopify_order_name: params[:name],
#etc etc
line_items_attributes: create_line_items(params[:line_items])
)
После order.save
, я хотел бы назвать order.assign_shipments
. Как мне получить доступ к атрибутам, которые я установил в контроллере заказов?
В моей модели порядок я хочу сделать что-то вроде:
def self.assign_shipments
order.line_items.each do |line_item|
# check line item params
# create_shipments based on line item params
end
end
Но я не знаю, как я могу получить доступ к атрибутам (п.п.) порядка? Являются ли они доступными даже в модели или они доступны только в экземпляре моего контроллера заказов (и, следовательно, я должен создавать поставки в контроллере заказов)?
Большое спасибо мат. Это именно то, что я искал. Похоже, я могу переместить еще кое-что из моего контроллера в мои модели: D cheers! – stoerebink