"uninitialized constant 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
controllers/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
好像 ReservationOptions
没有在任何地方定义,你在 controllers/api/v1/reservation_options_controller.rb
中使用它。
确保您拼写正确,或者您在 app/models/reservation_option.rb
中有合适的模型。我的猜测是它应该是 ReservationOption
,因为 Rails 模型 class 名称通常是单数。
您在创建操作时出错
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
我正在尝试创建 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
controllers/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
好像 ReservationOptions
没有在任何地方定义,你在 controllers/api/v1/reservation_options_controller.rb
中使用它。
确保您拼写正确,或者您在 app/models/reservation_option.rb
中有合适的模型。我的猜测是它应该是 ReservationOption
,因为 Rails 模型 class 名称通常是单数。
您在创建操作时出错
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