gpt4 book ai didi

ruby-on-rails - 用 Rails 设计 4 : user show route doesn't exist

转载 作者:行者123 更新时间:2023-12-04 05:57:44 26 4
gpt4 key购买 nike

我正在使用 devise gem 来处理所有注册和登录的事情。但我还想将用户配置文件添加到我的应用程序中,因此我生成了一个只有显示操作的用户 Controller 。然后我将 get 'users/:id' => 'users#show' 添加到 routes.rb。事实上,输入/users/1 是可行的,但我找不到命名路线的方法。 我想要的是获得类似 show_user_path 或 user_path 的东西,这样我就可以链接到给定用户的内容并显示该用户的个人资料。

这是我的 routes.rb

Pinteresting::Application.routes.draw do
resources :pins
get 'users/:id' => 'users#show'
devise_for :users

root "pins#index"
get "about" => "pages#about"

这是我得到的路线(我突出显示了我希望类似于 show_user_path 的路线):

pins_path                        GET     /pins(.:format)     pins#index
POST /pins(.:format) pins#create
new_pin_path GET /pins/new(.:format) pins#new
edit_pin_path GET /pins/:id/edit(.:format) pins#edit
pin_path GET /pins/:id(.:format) pins#show
PATCH /pins/:id(.:format) pins#update
PUT /pins/:id(.:format) pins#update
DELETE /pins/:id(.:format) pins#destroy
#this is the one I want a path! GET /users/:id(.:format) users#show
new_user_session_path GET /users/sign_in(.:format) devise/sessions#new
user_session_path POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session_path DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password_path POST /users/password(.:format) devise/passwords#create
new_user_password_path GET /users/password/new(.:format) devise/passwords#new
edit_user_password_path GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration_path GET /users/cancel(.:format) devise/registrations#cancel
user_registration_path POST /users(.:format) devise/registrations#create
new_user_registration_path GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration_path GET /users/edit(.:format) devise/registrations#edit
PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
root_path GET / pins#index
about_path GET /about(.:format) pages#about

最佳答案

对于设计,User 不是资源,它只是一个范围。 devise 关心的是身份验证。

虽然路径嵌套在/user 下,但您会注意到定义的资源实际上是 session 、注册、密码...

只需在您的路由中添加 resources :users 并创建一个 UsersController(和 View )。

如果您不想为用户创建所有资源,而只想使用 get 'users/:id 访问 user_path(user),您可以使用 as 选项命名该路由,如下所示:

get 'users/:id' => 'users#show', as: user

关于ruby-on-rails - 用 Rails 设计 4 : user show route doesn't exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435545/

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