我试图创建一个用户show
页面(它将用作配置文件页面),但对如何使用Devise执行此操作感到困惑。它似乎并没有像Devise带有任何形式的show
定义 - 有没有什么办法可以访问控制器Devise为了使其中一个或者我必须覆盖它们而实现的控制器?使用Devise创建`Users`显示页面
回答
你应该产生一个users_controller
从application_controller
继承和定义有您的自定义show
方法。不要忘记为它创建一个视图和路线。 例如:
#users_controller.rb
def show
@user = User.find(params[:id])
end
#in your view
<%= @user.name %>
#routes.rb
match 'users/:id' => 'users#show', via: :get
# or
get 'users/:id' => 'users#show'
# or
resources :users, only: [:show]
您可以生成devise使用的视图,因此您可以根据需要进行更改。
rails g devise:views
但用户仍然没有显示页面。只有新的和编辑页面。 –
不好的答案,先看看这个问题,看来oyu还没有用 – SsouLlesS
'rails g devise:views'生成新的和编辑的视图。没有显示页面。尝试代码并查看您的路线,没有显示。 –
不要忘了你的用户的路线应该是devise_for用户线路下方,就像这样:
#routes.rb
devise_for :users
resources :users, :only => [:show]
此外,如果您使用的是用户名或电子邮件作为主要的键而不是通常的ID,你应该避免路由冲突通过声明你的路线如下:
#routes.rb
devise_for :users, :path_prefix => 'd'
resources :users, :only => [:show]
显示CURRENT_USER/other_user型材色器件:
After installing devise
创建用户控制:
rails generate controller Users
然后创建一个表演动作,并找到使用参数ID的用户:
def show
@user = User.find(params[:id])
end
创建在用户show.html.erb文件查看文件夹:
<%= @user.email %>
链接到用户显示页面:
<%= link_to "current_user_show", current_user %>
现在如果你想查看其他配置文件创建在用户控制器中的索引操作:
def index @users = User.all end
创建在用户查看文件夹的index.html.erb则:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
的链接,这将是:
<%= link_to "show_index_of_users", users_path %>
这将您链接到用户index.html.erb文件中有您将创建循环,并链接到用户配置文件:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
这应该工作!
无需配置/路由? –
- 1. 用Devise创建“Users”显示页面
- 2. 将devise users/sign_up页面设置为登录页面
- 3. 如何使用jQuery创建iframe,并在页面上显示?
- 4. Rails |显示页面上显示的URL参数后创建
- 5. Rails使用Devise显示在线用户
- 6. 创建一个页面,向用户显示他们使用过哪些页面使用PHP
- 7. 向Devise显示用户
- 8. 仅使用devise显示current_user的评论
- 9. 在网页上显示Codeigniter日志文件的创建页面
- 10. 创建一个Sharepoint页面,但不显示在面包屑中
- 11. 如何从Silverlight应用程序创建(并显示)pdf页面
- 12. Bluemix用户创建的容器 - '无法显示此页面'
- 13. 创建用于显示jpg的链接的模板页面
- 14. 创建一个页面以显示特定用户创建的内容
- 15. 使用“假页面”创建子页面的子页面
- 16. 显示页面?
- 17. 如何使用纯HTML页面上的悬停显示创建缩略图?
- 18. 使用JS创建IFRAME并显示页面上的任何地方
- 19. 使用MORE/HIDE选项创建显示字段的搜索页面
- 20. 使用页面动作在某些页面上显示Chrome扩展显示
- 21. 使用turn.js显示双页面
- 22. 使用AJAX显示页面内容
- 23. 使用CPT UI显示分类页面
- 24. 使用encodeURI来显示整个页面
- 25. 使用isset显示页面内容
- 26. 使用getResources显示页面内容 - ModX
- 27. jQuery,Fancybox使用ajax显示php页面
- 28. 如何使用javascript显示jquery页面?
- 29. 使用Javascript弹出显示页面
- 30. 页面不显示使用jQuery Mobile
所以我已经完成了所有这些,我只是将'show'改成了'index',它使得'@users = Users.all'但我得到这个错误:未初始化的常量UsersController :: Users。 发现我的错误,应该是'@users = @ User.all' – tcatchy
一旦我这样做了,我如何链接到特定的用户配置文件,并且可以在不登录的情况下打开/访问它?谢谢! – westman2222
上面的代码会使用户显示(配置文件)页面无需登录即可访问 –