这是一个新项目,如果有人在这方面有建议,那么抓取和重新启动会很容易。基本上我通过使用:
创建用户rails generate devise users
但是现在我想创建一个类似用户#index页面的路径来显示所有用户。当我跑rake routes
我的下一个想法是使用rails generate scaffold user
来尝试生成这样的视图和控制器函数。这没用。
我对rails很新,但对它有一个非常普遍的把握。我刚刚开始使用设计,所以这部分让我最困惑,我正在使用它进行验证。我一直在寻求帮助,并研究了devise page相当多,但无济于事。
只是一些额外的信息。当我尝试路由http://localhost:3000/users
时,我得到uninitialized constant UsersController
但是当我添加一个用户控制器时,它只是抱怨其他的东西。我已经尝试过其他一些东西,但不想通过进入所有这些问题来淡化问题。
答案 0 :(得分:26)
Devise在gem库目录中隐藏自己的控制器和视图。您可以将视图拉入项目进行编辑,但控制器没有类似之处。有关示例,请参阅Devise documentation。
为此生成自己的控制器和视图非常容易:
<强>配置/ routes.rb中:强>
# NOTE: put this after the 'devise_for :users' line
resources :users, only: [:index]
应用/控制器/ users_controller.rb:强>
class UsersController < ApplicationController
def index
@users = User.all
end
end
应用/视图/用户/ index.html.erb:强>
<ul>
<% @users.each do |user| %>
<li><%= user.name %></li>
<% end %>
</ul>
这是一个适合您的极简主义示例。
如果您不需要像应用的公开部分那样设置样式,则可能需要考虑使用ActiveAdmin。为您节省编码,样式和保护应用程序所需的大量基本记录管理能力的麻烦。我使用ActiveAdmin,然后如上所述滚动我自己的控制器/视图/路由,以在应用程序的公共部分中显示用户列表。
答案 1 :(得分:1)
Devise将处理注册和登录/注销。它不会做任何其他事情。索引是rails中的典型控制器操作。当您生成用户脚手架时,您是否添加了任何额外的参数? Rails getting started有基本文档。向下滚动到关于脚手架的第6部分。生成脚手架时,您可以创建模型,视图和控制器。该教程的第7部分从头开始生成模型。在您的情况下,用户模型可能具有名称的字符串和电子邮件的字符串。模型可以有许多属性,如布尔值或整数。 (您将需要为密码等身份验证添加设计属性,但可以在以后添加。)因此,请尝试使用rails generate scaffold user name:string email:string
再次生成一个脚手架。这会将名称和电子邮件列添加到您的用户模型中。从那里脚手架应该使用控制器和基本视图中的默认操作为您设置。然后你应该进行索引操作。