Hallo Leute, ich versuche eine "Add-to-Cart-Funktion". Ich erhalte weiterhin den Fehler "Einkaufswagen undefinierte Methode oder Variable" und ich kann nicht herausfinden, wo ich falsch liege.In den Warenkorb Function - No Method Error (undefinierte Methode)
Hier ist mein cart.rb Modell
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
Hier ist meine carts_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
definierten Methoden in 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
Code in routes.rb für die Schaltfläche
post '/add_to_cart/:tutor_id' => 'carts#add_to_cart', :as => 'add_to_cart'
und der Code für die Schaltfläche den Warenkorb
<%= button_to "Shortlist Tutor", add_to_cart_path(:tutor_id => :tutor_id), :method => :post %>
hinzufügen Jedes Mal, wenn ich die "Shortlist Tutor" Taste versuchen, erhalte ich eine NoMethodError in CartsController # add_to_cart, nicht definierte Methode `Tutoren für Wagen (id: integer): Klasse
und der markierte Fehler ist auf der cart.rb Modelldatei und die Linie
Cart.tutors << tutor
Jede Hilfe zu diesem Fehler wird sehr geschätzt wird. Danke für deine Zeit und deinen Rat!
Wurde der Fehler gelöst ?? –
Vielen Dank für diese Lösung! Ja, es scheint, als hätte es mein Problem gelöst, weil ich jetzt nicht mehr den undefinierten Methodenfehler bekomme! vielen Dank noch mal! Der Fehler ist nun SQLite3 :: SQLException: keine solche Spalte: tutor_id: SELECT "Tutoren". * FROM "Tutoren" WHERE (tutor_id = '2') – angkiki
Es ist, weil Sie keine Spalte namens tutor_id in Tutor haben. Ersetzen Sie also "tutor = Tutor.where ('tutor_id =?', Tutor_id)" von "tutorial = Tutor.find (tutor_id)". Wenn es heißt, dass der Datensatz nicht gefunden wurde, bedeutet das, dass kein Tutor-Datensatz mit der ID als Tutor-ID vorhanden ist. –