使用 Devise 创建“Users”显示页面
我正在尝试创建一个用户 show
页面(它将用作个人资料页面),但对如何使用 Devise 执行此操作感到困惑。 Devise 似乎没有附带任何类型的 show
定义 - 有什么方法可以访问 Devise 正在实现的控制器以便制作一个控制器,还是我必须覆盖它们?
I'm trying to create a User show
page (that will function as a profile page) but am confused about how to do this with Devise. It doesn't seem as though Devise comes with any sort of show
definition - is there any way I can access the controllers Devise is implementing in order to make one or do I have to override them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您应该生成一个继承自
application_controller
的users_controller
并在其中定义您的自定义show
方法。不要忘记为其创建视图和路线。前任:
You should generate a
users_controller
which inherits fromapplication_controller
and define there your customshow
method. Don't forget to create a view and routes for it.Ex:
不要忘记您的用户路由应位于 devise_for users 路由下方,如下所示:
此外,如果您使用用户名或电子邮件作为主键而不是通常的 id,则应通过将路由声明为来避免路由冲突跟随:
Don't forget that your users routes should be below the devise_for users routes, like this:
Also, if you are using a username or an email as the primary key instead of the usual id, you should avoid routing conflicts by declaring your routes as follow:
使用设备显示当前用户/其他用户配置文件:
创建一个 Users 控制器:
然后创建一个 show 操作并找到带有 params id 的用户:
在 User view 文件夹中创建一个 show.html.erb 文件:
链接到用户显示页面:
现在,如果您想查看其他配置文件,请创建用户控制器中的索引操作:
在用户视图文件夹中创建一个index.html.erb,然后:
该链接将是:
这将链接到用户index.html.erb文件,您将在其中创建一个循环和链接至用户个人资料:
这应该可行!
showing current_user/ other_user profiles with devise:
Create a Users controller:
Then create a show action and find the user with params id:
Create a show.html.erb file in the User view folder:
Linking to users show page:
Now if you want to view other profiles create a index action in the users controller:
Create an index.html.erb in the User view folder then:
The link for this will be:
This will link you to the users index.html.erb file there you will create a loop and link to users profile:
This should work!
users_controller.rb
应位于devise
生成的users
文件夹之外,其中包含sessions
和registration< /code> 控制器(如果有)。
对于您的视图:
以及您的路线:
show
路线也应该与自定义devise
生成的路线分开(如果有的话)。The
users_controller.rb
should be outside of thedevise
generatedusers
folder containing thesessions
andregistration
controllers (if any).For your views:
and for your routes:
The
show
route should also be separate from the customdevise
generated ones (if any).您可以生成 devise 使用的视图,因此您可以根据需要更改它。
you can generate the views used by devise, so you can change it as you want to.