我是rails的新手。我指的是“使用rails进行敏捷Web开发”。在这里,他们使用语法从部分'_cart'渲染另一个部分'_line_item':
<%= render(cart.line_items) %>
我的问题是为什么要使用cart
而不是@cart
?有什么区别?
答案 0 :(得分:3)
因为部分@cart
中的实例变量_cart
不可用。它的渲染线可能如下所示:
<%= render partial: 'cart', locals: {cart: @user.cart} %>
或
<%= render 'cart', :cart => @user.cart %>
因此,用户的购物车可用作本地变量cart
。
答案 1 :(得分:1)
我认为这是因为你在这里说的是你使用的是部分购物车,而不是你保存在@cart变量中的购物车模型。不同之处在于部分购物车是一个视图而@cart可能真的是任何东西,因为它是一个变量但很可能是购物车对象的模型。
答案 2 :(得分:1)
@cart
(可能)是cart
类的特定实例,但是您呈现的是引用cart
对象的部分实例。
答案 3 :(得分:1)
用法取决于视图或部分的调用方式。
您可以定义实例变量,例如@cart = current_account.cart
,然后在您从控制器调用的所有视图,后续部分或帮助程序中可用。
或者你可以调用render :partial=>'cart_page', :locals => { cart: @account.cart }
,它只将变量专门传递给名为'cart'的部分(没有@,因为它不是全局可用的)