为设计用户创建索引视图

时间:2013-06-05 04:07:24

标签: ruby-on-rails model-view-controller devise

这是一个新项目,如果有人在这方面有建议,那么抓取和重新启动会很容易。基本上我通过使用:

创建用户
rails generate devise users

但是现在我想创建一个类似用户#index页面的路径来显示所有用户。当我跑rake routes

时,我找不到任何看似适用的路线

我的下一个想法是使用rails generate scaffold user来尝试生成这样的视图和控制器函数。这没用。

我对rails很新,但对它有一个非常普遍的把握。我刚刚开始使用设计,所以这部分让我最困惑,我正在使用它进行验证。我一直在寻求帮助,并研究了devise page相当多,但无济于事。

只是一些额外的信息。当我尝试路由http://localhost:3000/users时,我得到uninitialized constant UsersController但是当我添加一个用户控制器时,它只是抱怨其他的东西。我已经尝试过其他一些东西,但不想通过进入所有这些问题来淡化问题。

2 个答案:

答案 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再次生成一个脚手架。这会将名称和电子邮件列添加到您的用户模型中。从那里脚手架应该使用控制器和基本视图中的默认操作为您设置。然后你应该进行索引操作。