首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 4的敏捷web开发:@cart参数从何而来?

Rails 4的敏捷web开发:@cart参数从何而来?
EN

Stack Overflow用户
提问于 2015-04-14 21:04:14
回答 1查看 77关注 0票数 0

摘自第12章任务4:捕获订单。

Orders控制器中来自@order.add_line_items_from_cart( @cart )的@cart参数来自哪里?通过该方法传递的值是什么?

代码语言:javascript
运行
复制
class OrdersController < ApplicationController
  def create
    @order = Order.new(order_params)
    @order.add_line_items_from_cart(@cart)
end
代码语言:javascript
运行
复制
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实例变量

其他问题

从'item‘追加到line_items的值是什么

代码语言:javascript
运行
复制
  def add_line_items_from_cart(cart)
    cart.line_items.each do |item|
      item.cart_id = nil
      line_items << item
    end
  end

我是Rails的新手,所以我甚至不确定我问的问题是否正确。

EN

回答 1

Stack Overflow用户

发布于 2015-04-14 21:39:18

如果您在应用程序范围内搜索“@cart”,您肯定会找到@cart的定义位置。除非您正在使用gem,否则我打赌它是在您的某个控制器中的helper方法中定义的。如果@cart被多个控制器使用(这意味着它将被orders_controller使用,也许是users_controller,也许是products_controller),它可能值得在application_controller中检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29628110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档