Создание индексного представления для пользователя-разработчика

Это новый проект, поэтому очистка и перезапуск будут легкими, если у кого-то есть рекомендации в этом направлении. По сути, я создал пользователей с помощью:

rails generate devise users

Но теперь я хочу создать маршрут к чему-то вроде индексной страницы пользователей #, чтобы отобразить всех пользователей. Я не мог найти маршруты, которые, казалось, были применимы, когда я запустил rake routes

Моя следующая мысль заключалась в том, чтобы использовать rails generate scaffold user, чтобы попытаться сгенерировать такие представления и функции контроллера. Это не сработало.

Я относительно новичок в рельсах, но имею довольно общее представление об этом. Я только начал использовать программу, так что часть меня больше сбивает с толку, я использую ее для проверки. Я оглянулся на помощь и довольно подробно изучил

Ответ 1

Devise скрывает свои собственные контроллеры и представления в каталоге библиотеки gem. Вы можете потянуть за просмотр в свой проект для редактирования, но ничего подобного для контроллеров не существует. Для некоторых примеров см. Разработка документации.

Очень легко создать собственный контроллер и просмотреть для этого:

конфиг /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, а затем сворачиваю свои собственные контроллеры/представления/маршруты, как указано выше, для представления списка пользователей в общедоступных частях приложения.

Ответ 2

Devise будет обрабатывать регистрацию и логин/выход из системы. Он ничего не сделает. Индекс является типичным действием контроллера в рельсах. Когда вы создали пользовательский эшафот, вы добавили дополнительные параметры? Начало работы с Rails содержит базовую документацию. Прокрутите вниз до шестого раздела о лесах. Когда вы создаете эшафот, вы создаете модель, представление и контроллер. Раздел 7 этого учебника генерирует модель с нуля. В вашем случае модель пользователя может содержать строку для имени и строку для электронной почты. Модель может иметь много атрибутов, таких как логические значения или целые числа. (Вам нужно добавить атрибуты разработки для аутентификации, такие как пароль, но это может быть добавлено позже.) Попробуйте создать эшафот снова, но с помощью rails generate scaffold user name:string email:string. Это добавит столбцы имен и адресов электронной почты в вашу модель пользователя. Оттуда эшафот должен установить вас с действиями по умолчанию в контроллере и основными видами. Затем вы должны иметь действие индекса.