所以我最近在我的 Rails 3 应用程序中安装了 Devise,现在每当我尝试使用 Devise 登录路径登录时,我都会收到以下错误: NoMethodError in Devise/sessions#new undefined method `line_items' for nil:NilClass
该错误与以下几行有关: <%=@cart.line_items.sum("quantity")%>
我继承了设计会话控制器并配置了路由
class Users::SessionsController < Devise::SessionsController
def new
@cart = current_cart
@line_item = LineItem.new
end
end
但这对问题没有影响。每当我删除 @cart.line_items.sum("quantity") 行时,登录都可以正常工作。
current_cart 被定义为应用程序控制器中的私有方法:
def current_cart
Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
我很感激任何帮助