用Devise创build一个`Users`显示页面
我试图创build一个用户show页面(这将作为一个configuration文件页面),但困惑于如何与Devise做到这一点。 似乎Devise没有任何types的show定义 – 有什么办法可以访问控制器Devise正在执行,以使一个或我必须重写它们? 
 您应该生成一个从application_controllerinheritance的users_controller并在那里定义您的自定义show方法。 不要忘记为它创build一个视图和路线。 例如: 
 #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_for用户路由下面,像这样:
 #routes.rb devise_for :users resources :users, :only => [:show] 
另外,如果您使用用户名或电子邮件作为主键而不是通常的ID,则应通过声明路由来避免路由冲突:
 #routes.rb devise_for :users, :path_prefix => 'd' resources :users, :only => [:show] 
用devise显示current_user / other_userconfiguration文件:
安装设备后
创build一个用户控制器:
 rails generate controller Users 
然后创build一个显示操作并使用params idfind用户:
 def show @user = User.find(params[:id]) end 
在用户视图文件夹中创build一个show.html.erb文件:
 <%= @user.email %> 
链接到用户显示页面:
 <%= link_to "current_user_show", current_user %> 
现在,如果要查看其他configuration文件,请在用户控制器中创build索引操作:
 def index @users = User.all end 
在用户视图文件夹中创build一个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文件那里您将创build一个循环并链接到用户configuration文件:
 <% @users.each do |user| %> <%= link_to user.username, user %> <%= user.email %> <% end %> 
这应该工作!
你可以生成devise使用的意见,所以你可以改变它,只要你想。
  rails g devise:views