大家好,我正在尝试添加购物车功能"。我一直收到"购物车未定义的方法或变量"错误,我似乎无法弄清楚我哪里出错了。
这是我的cart.rb模型
if isWordGuessed(secretWord, lettersGuessed):
这是我的carts_controller.rb
class Cart < ActiveRecord::Base
has_many :tutors
def add_tutor(tutor_id)
tutor = Tutor.where('tutor_id = ?', tutor_id)
if tutor
Cart.tutors << tutor
end
save
end
end
application_controller.rb中定义的方法
class CartsController < ApplicationController
def show
@cart = current_cart
end
def add_to_cart
current_cart.add_tutor(params[:tutor_id])
redirect_to tutors_path
end
end
按钮的routes.rb中的代码
def current_cart
if session[:cart_id]
@current_cart ||= Cart.find(session[:cart_id])
end
if session[:cart_id].nil?
@current_cart = Cart.create!
session[:cart_id] = @current_cart.id
end
@current_cart
end
以及要添加到购物车的按钮的代码
post '/add_to_cart/:tutor_id' => 'carts#add_to_cart', :as => 'add_to_cart'
每当我尝试&#34;候选名单导师&#34;按钮,我在CartsController中收到NoMethodError#add_to_cart,未定义的方法`tutors&#39; for Cart(id:integer):Class
并且突出显示的错误位于cart.rb模型文件和
行<%= button_to "Shortlist Tutor", add_to_cart_path(:tutor_id => :tutor_id), :method => :post %>
非常感谢有关此错误的任何帮助。感谢您的时间和建议!
答案 0 :(得分:0)
在Cart.tutors << tutor
购物车是一个班级。要将tutors
添加到Cart
,Cart
必须是对象。在您的情况下,current_cart
是一个对象,但Cart是类。所以用cart替换cart.rb中的Cart,如下所示
class Cart < ActiveRecord::Base
has_many :tutors
def add_tutor(tutor_id)
tutor = Tutor.where('tutor_id = ?', tutor_id)
if tutor
self.tutors << tutor
end
save
end
end