0
嗨,大家好,我正在嘗試「添加到購物車功能」。我一直收到「購物車未定義的方法或變量」的錯誤,我似乎無法弄清楚我哪裏出錯了。加入購物車功能 - 無方法錯誤(未定義方法)
這裏是我的cart.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
這裏是我的carts_controller.rb在application_controller.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
代碼中定義的routes.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
方法按鈕
post '/add_to_cart/:tutor_id' => 'carts#add_to_cart', :as => 'add_to_cart'
和按鈕的代碼添加到購物車
<%= button_to "Shortlist Tutor", add_to_cart_path(:tutor_id => :tutor_id), :method => :post %>
每當我嘗試了「入圍導師」按鈕,我收到CartsController#add_to_cart一個NoMethodError,未定義的方法'導師的購物車(ID:整數):類
和突出顯示的錯誤是在cart.rb模型文件和線是
Cart.tutors << tutor
任何幫助關於此錯誤是極大的讚賞。感謝您的時間和建議!
錯誤是否得到解決? –
非常感謝您的解決方案!是的,它似乎確實解決了我的問題,因爲我現在不再收到未定義的方法錯誤!再一次感謝你! 現在錯誤已成爲SQLite3 :: SQLException:沒有這樣的列:tutor_id:SELECT「tutors」。* FROM「tutors」WHERE(tutor_id ='2') – angkiki
這是因爲你沒有在Tutor中有tutor_id列。所以用「tutor = Tutor.find(tutor_id)」代替「tutor = Tutor.where('tutor_id =?',tutor_id)」。現在,如果表示沒有找到記錄,那就意味着沒有導師記錄與id一起出現tutor_id –