Ruby on rails NoMethodError-未定义的方法`集合';
嗨,当我试图显示数据库中的第一个用户时,我遇到了这个NoMethodError。我的用户控制器如下:Ruby on rails NoMethodError-未定义的方法`集合';,ruby-on-rails,Ruby On Rails,嗨,当我试图显示数据库中的第一个用户时,我遇到了这个NoMethodError。我的用户控制器如下: class UsersController < ApplicationController before_action :set_, only: [:show, :edit, :update, :destroy] # GET /users # GET /users.json def index @users = User.all end # GET /u
class UsersController < ApplicationController
before_action :set_, only: [:show, :edit, :update, :destroy]
# GET /users
# GET /users.json
def index
@users = User.all
end
# GET /users/1
# GET /users/1.json
def show
@user = User.find(params[:id])
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
end
# POST /users
# POST /users.json
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /users/1
# PATCH/PUT /users/1.json
def update
respond_to do |format|
if @users.update(user_params)
format.html { redirect_to @user, notice: 'User was successfully
updated.' }
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.json
def destroy
@user.destroy
respond_to do |format|
format.html { redirect_to users_url, notice: 'User was successfully
destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white
list through.
def user_params
params.require(:user).permit(:name, :email)
end
end
class UsersController
我的视图/用户/显示基本上只打印用户名和电子邮件
<%= @user.name %><% @user.email %>
修复此问题
before_action :set_
到
NoMethodError-未定义的方法“set_”
错误来自
before_action :set_, only: [:show, :edit, :update, :destroy]
可能您的意思是将这一行替换为
before_action :set_, only: [:show, :edit, :update, :destroy]
这个
我猜您粘贴到这里的代码中有两个错误
before_action :set_user, only: [:show, :edit, :update, :destroy]
在“update”方法中,对象是“@user”,而不是“@users”。请换
@users.update(user_params)
到
只是行动前的
中有输入错误
before_action :set_user, only: [:show, :edit, :update, :destroy]
@users.update(user_params)
@user.update(user_params)