14

这是一个新项目,所以如果有人有这个方向的建议,那么抓取和重新启动会很容易。本质上,我使用以下方法创建了用户:

rails generate devise users

但现在我想创建一条到 users#index 页面之类的路由来显示所有用户。当我跑步时,我找不到任何似乎适用的路线rake routes

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

我对 Rails 比较陌生,但对它有一个相当普遍的掌握。我刚开始使用设计,所以这部分让我最困惑,我用它来验证。我四处寻找帮助并研究了设计页面,但无济于事。

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

4

2 回答 2

28

Devise 在 gem 库目录中隐藏了自己的控制器和视图。您可以将视图拉入您的项目进行编辑,但控制器没有类似的东西。有关一些示例,请参阅设计文档

为此生成自己的控制器和视图非常容易:

配置/路由.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,然后如上所述滚动我自己的控制器/视图/路由,以在应用程序的公共部分显示用户列表。

于 2013-06-05T05:02:05.103 回答
2

设计将处理注册和登录/注销。它不会做任何其他事情。索引是 Rails 中典型的控制器动作。当您生成用户脚手架时,您是否添加了任何额外的参数?Rails 入门有基本文档。向下滚动到关于脚手架的第 6 部分。当你生成一个脚手架时,你会创建一个模型、一个视图和一个控制器。该教程的第 7 节从头开始生成模型。在您的情况下,用户模型可能有一个名称字符串和一个电子邮件字符串。模型可以具有许多属性,例如布尔值或整数。(您将需要添加用于身份验证的设计属性,例如密码,但可以稍后添加。)因此请尝试再次生成脚手架,但使用rails generate scaffold user name:string email:string. 这会将姓名和电子邮件列添加到您的用户模型中。从那里,脚手架应该为您设置控制器和基本视图中的默认操作。然后你应该有你的索引动作。

于 2013-06-05T05:01:15.647 回答