我正在使用Devise gem,并为用户创建了一个show
页面。我的想法是创建一个简单的路径,如www.website.com/:id
,并按照下面所示进行配置:
devise_for :users, path: '', path_names: {sing_in: "login", sing_out:
"signout", sing_up: "signup", edit: "edit"},
:controllers => {:registrations => :registrations }
resources :users, only: [:show]
get '/:id' => 'users#show', as: :profile
我的路由正常工作,但除了 show
页面外,我还有一些在 static controller
下的页面,例如 about
页面。我希望能够像这样访问它们:www.website.com/about
,以下是我定义静态路由的方式:
get '/about', to: 'static#about'
现在,如果我试图重定向到关于页面
,我会收到一个错误:
ActiveRecord::RecordNotFound in UsersController#show
Couldn't find User with 'id'=about
这是我的
users_controller.rb
文件:class UsersController < ApplicationController
def show
@user = User.find_by_id(params[:id])
@services = @user.services
end
...
end
我尝试搜索类似的错误,但没有找到类似的内容。请问有谁可以告诉我我做错了什么吗?
非常感谢您的帮助和时间。
get '/about', to: 'static#about'
应该在get '/:id' => 'users#show', as: :profile
路由之前定义。 - lightalloywww.website/123
),是否有其他类似的解决方案? - Anton S.