gpt4 book ai didi

ruby-on-rails - 找不到 'id' =show 的用户

转载 作者:数据小太阳 更新时间:2023-10-29 08:45:08 25 4
gpt4 key购买 nike

今天为您解答一个 Rails/Devise 问题。我正在处理网站的用户配置文件,但遇到了这个错误

ActiveRecord::RecordNotFound 位于/users/show

找不到 'id'=show 的用户


不确定到底发生了什么,因为我以前没有真正遇到过这样的事情。这里有一些必要的文件来查看-


users_controller.rb:

class UsersController < ApplicationController
before_action :authenticate_user!, except: [:show]

def show
@user = User.find(params[:id])
@user_bookmarks = @user.bookmarks
@liked_bookmarks = @user.likes
end

def update
if current_user.update_attributes(user_params)
flash[:notice] = "User information updated"
redirect_to edit_user_registration_path
else
flash[:error] = "Invalid user information"
redirect_to edit_user_registration_path
end
end

private

def user_params
params.require(:user).permit(:name, :avatar)
end
end

routes.rb:

Rails.application.routes.draw do

devise_for :users
resources :users, only: [:show, :update]

post :incoming, to: 'incoming#create'

resources :topics do
resources :bookmarks, except: [:index]
end

resources :bookmarks, except: [:index] do
resources :likes, only: [:create, :destroy]
end

get 'about' => 'welcome#about'

root to: 'welcome#index'
end

user.rb:

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable

mount_uploader :avatar, AvatarUploader
has_many :topics, dependent: :destroy
has_many :bookmarks, dependent: :destroy
has_many :likes, dependent: :destroy

validates :name, presence: true

def admin?
role == 'admin'
end

def moderator?
role == 'moderator'
end

def member?
role == 'member'
end

def liked(bookmark)
likes.where(bookmark_id: bookmark.id).first
end
end

最佳答案

show 操作取决于查找 id。由于您正在访问 URL /users/show,它假定您正在尝试查找 idshow 的用户。相反,您应该转到类似 /users/1 的 url 来触发 show 操作。

The Rails guide on routing有一个部分指定 GET/photos/:id 映射到 photos#show

关于ruby-on-rails - 找不到 'id' =show 的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com