Ich nehme eine Online-Webentwicklungsklasse und der Lehrer reagiert leider nicht auf E-Mails. Während dieser Aufgabe tritt ein Fehler auf, wenn ich versuche, einen Checkout-Bildschirm für meinen Einkaufswagen zu erstellen. Die Sache ist, der Professor hat sich auch nicht die Mühe gemacht, seinen Code zu überprüfen und zu sehen, ob es funktioniert, also habe ich keine richtige Lösung zum Nachschlagen. Ich nehme an, dass es ein Problem mit dem Buch geben könnte, da es scheint, dass andere ähnliche Probleme haben.NoMethodError in OrderController # neu
Ich bin ein totaler Noob mit Rubyronrails, also suche ich nach etwas Hilfe, um die Ursache dieses Fehlers zu finden.
Ich kann deutlich die NoMethodError in OrderController#new
sehen. Aber habe keine Ahnung, was das bedeutet, dass ich tun sollte.
Jede Anleitung für mich?
order_controller.rb
class OrdersController < ApplicationController
include CurrentCart
before_action :ensure_cart_isnt_empty, only: :new
before_action :set_cart, only: [:new, :create]
before_action :set_order, only: [:show, :edit, :update, :destroy]
# GET /orders
# GET /orders.json
def index
@orders = Order.all
end
# GET /orders/1
# GET /orders/1.json
def show
end
# GET /orders/new
def new
@order = Order.new
end
# GET /orders/1/edit
def edit
end
# POST /orders
# POST /orders.json
def create
@order = Order.new(order_params)
@order.add_line_items_from_cart(@cart)
respond_to do |format|
if @order.save
Cart.destroy(session[:cart_id])
session[:cart_id] = nil
format.html { redirect_to store_index_url, notice:'Thank you for your order.' }
format.json { render :show, status: :created, location: @order }
else
format.html { render :new }
format.json { render json: @order.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /orders/1
# PATCH/PUT /orders/1.json
def update
respond_to do |format|
if @order.update(order_params)
format.html { redirect_to @order, notice: 'Order was successfully updated.' }
format.json { render :show, status: :ok, location: @order }
else
format.html { render :edit }
format.json { render json: @order.errors, status: :unprocessable_entity }
end
end
end
# DELETE /orders/1
# DELETE /orders/1.json
def destroy
@order.destroy
respond_to do |format|
format.html { redirect_to orders_url, notice: 'Order was successfully destroyed.' }
format.json { head :no_content }
end
end
def ensure_cart_isnt_empty
if @cart.line_items.empty?
redirect_to store_index_url, notice: 'Your cart is empty'
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_order
@order = Order.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def order_params
params.require(:order).permit(:name, :addresss, :email, :pay_type)
end
end
Aktualisierung mit mehr Code für Sie – 23k
Code wurde hinzugefügt. – 23k
@ 23k Ich habe gerade meine Antwort aktualisiert :) –