最近、Rails 3 アプリに Devise をインストールしましたが、Devise サインイン パスを使用してサインインしようとすると、次のエラーが表示されます: NoMethodError in Devise/sessions#new undefined method `line_items' for nil:NilClass
エラーは次の行に関連付けられています: <%=@cart.line_items.sum("quantity")%>
Devise セッション コントローラーを継承し、ルーティングを構成しました
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
どんな助けにも感謝します