0

我目前正在使用devise进行身份验证,该身份验证为用户,应用程序的主页面中的用户,欢迎页面(身份验证后的根页面)生成user.rb和控制器。我需要在应用程序中显示用户创建帐户的总数,当前用户选择的主题数量以及当前用户的其他详细信息。当我使用相同的user.rb和user_controller.rb时,我无法路由到用户页面。使用devise的rails自定义用户页面 - 使用Rails 4和Ruby - 2.2

的routes.rb

root "welcome_pages#home" 
    devise_for :users 
    resources :subjects 
    resources :books 

application.html.erb

<%= link_to "Home", root_path %></li> 
    <li><%= link_to "Books", books_path %></li> 
    <li><%= link_to "Subjects", subjects_path %></li> 
    <li><%= link_to "Users", users_path %></li> 

我缺少什么?我收到以下错误

No route matches [GET] "/users_path" 

让我知道是否需要提供更多信息。

在此先感谢。

回答

2

你必须单独添加的用户资源,是这样的:

devise_for :users 
resources :users, only: [:index, :show] do 
    ..... 
end 

用户控制器

def index 
    @users = User.all 
end 
  1. 首选版本,因为_user.html.erb将是可重复使用的

意见/users/index.html.erb

<%= render @users %> #this iterates thru all users and invokes _user partial 

视图/用户/ _user.html.erb

<%= user.name %> #in this case you don't need @ since you used this rails shortcut @user.each do |user|. 
  • 版本
  • 视图视图/用户/ index.html.erb

    <% @users.each |user| do %> 
        <%= user.name %> 
        .... 
    <% end %> 
    
    +0

    我仍然收到类似的错误 – cyborg

    +0

    你如何调用链接?你能显示代码吗? –

    +0

    如果可以删除路由错误是否有可能获得index.html.erb中的所有用户?如果是的话如何? – cyborg