我是Rails的新手,一直遇到这个错误。我已经仔细检查了我的语法,一切似乎都很好。我已经包括了我认为是相关的文件,但让我知道,如果你需要更多的信息。
controllers/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
2条答案
按热度按时间6qftjkof1#
路由文件在这里是不相关的。感觉用户模型根本找不到。试着
在控制台。如果找不到,则可能模型位于错误的位置。例如,它是否在app/models/user.rb中?如果是这样的话
语法错误之类的吗?
o2rvlv0m2#
在rails 7中,当我们试图创建一个新的Controller而不创建它的Model时。我也面临着同样的问题。
NameError in UsersController#index uninitialized constant UsersController::User
只需要在控制器中添加skip_load_and_authorize_resource
假设我们有一个控制器