【发布时间】:2021-07-31 16:01:10
【问题描述】:
我是 Rails 新手,并继续收到此错误。我仔细检查了我的语法,一切似乎都很好。我已经包含了我认为相关的文件,但如果您需要更多信息,请告诉我。
控制器/users_controller.rb:
class UsersController < ApplicationController
def index
@users = User.all
render json: @users, status: :ok
end
def show
render json: @user
end
def create
@user = User.new(user_params)
@user.save
render json: @user, status: :created
end
def update
if @user.update(user_params)
render json: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
def destroy
@user = User.where(id: params[:id]).first
if @user.destroy
head(:ok)
else
head(:unprocessable_entity)
end
end
private
def set_user
@user = User.find(params[:id])
end
def user_params
params.require(:user).permit(:name, :email, :password)
end
结束
models/user.rb
class User < ApplicationRecord
has_secure_password
validates :email, presence: true
has_many :reviews, :dependent => :destroy
has_many :albums
结束
config/routes.rb
Rails.application.routes.draw do
root to: "static#home"
resources :users
get "*path", to: "fallback#index", constraints: ->(req) { !req.xhr? && req.format.html? }
end
【问题讨论】:
-
尝试将
User替换为::User。让我们看看是否出错。 -
此处的代码实际上不会重现问题,因此我们实际上无法告诉您出了什么问题。您需要仔细检查文件名和其他“错误”来源,例如未保存的文件或 VC 相关问题。
-
@dileepnandanam 这是一个愚蠢的差事,因为 Ruby 无论如何都会将嵌套到 Object 的模块向上走来寻找常量。错误消息是
uninitialized constant UsersController::User的原因是因为这是它开始查找常量的嵌套模块。