簡體   English   中英

“未初始化的常量 Api::V1::ReservationOptionsController::ReservationOptions”

[英]"uninitialized constant Api::V1::ReservationOptionsController::ReservationOptions"

我正在嘗試創建 API,但出現錯誤

"type": "NameError",
"message": "uninitialized constant Api::V1::ReservationOptionsController::ReservationOptions",

我似乎無法在這里找到問題。

代碼

路線

namespace :api, defaults: { format: :json } do
    namespace :v1 do
      resources :reservation_options, only: [:show, :create]
    end
end

控制器/api/v1/reservation_options_controller.rb

class Api::V1::ReservationOptionsController < Api::V1::BaseController
  acts_as_token_authentication_handler_for User, only: [:create]

  def show
    @reservation_option = ReservationOption.find(params[:id])
    @reservation = @reservation_option.reservation
    authorize @reservation_option
  end

  def create
    @user = current_user
    @reservation_option = ReservationOptions.new(reservation_option_params)
    authorize @reservation_option
    if @reservation_option.save
      render :show, status: :created
    else
      render_error
    end
  end

  private
  def reservation_option_params
    params.require(:reservation_option).permit(:option_id, :option_quantity, :reservation_id)
  end
end

您在創建操作中出錯

def create
    @user = current_user
    # change this line
    # @reservation_option = ReservationOptions.new(reservation_option_params)
    @reservation_option = ReservationOption.new(reservation_option_params)
    authorize @reservation_option
    if @reservation_option.save
      render :show, status: :created
    else
      render_error
    end
  end


看起來ReservationOptions尚未在任何地方定義,並且您在controllers/api/v1/reservation_options_controller.rb使用它。

確保您拼寫正確,或者您在app/models/reservation_option.rb有適當的模型。 我的猜測是它應該是ReservationOption ,因為 Rails 模型類名稱通常是單數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM