【发布时间】:2011-09-13 18:24:03
【问题描述】:
我有一个辅助方法可以在我的应用程序控制器中获取当前的购物车:
class ApplicationController < ActionController::Base
protect_from_forgery
helper :all # include all helpers, all the time
private
def current_cart
if session[:cart_id]
@current_cart ||= Cart.find(session[:cart_id])
session[:cart_id] = nil if @current_cart.purchased_at
end
if session[:cart_id].nil?
@current_cart = Cart.create!
session[:cart_id] = @current_cart.id
end
@current_cart
end
end
我可以从我的大多数视图中调用该方法,但我想在 views/layout/application.html.erb 文件中使用它, 像这样:
<div id="cart_menu">
<ul>
<li>
<%= image_tag("cart.jpg")%>
</li>
<li>
<%= link_to "#{current_cart.number_of_items}", current_cart_url %>
</li>
<li>
<a href="/checkout/">Checkout</a>
</li>
</ul>
</div>
但是当我尝试这样做时,我得到了一个
undefined local variable or method `current_cart' for #<#<Class:0x2d2d834>:0x2d2b908>
错误..
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 layout