Rails/Devise - Как показать регистрационную информацию (а не просто отредактировать ее)

Я установил Devise сегодня, и пока все работает нормально. Единственное, что devise, кажется, не предлагает, — это действие «registration#show», которое отображает информацию о пользователе (вместо страницы редактирования регистрации). Я попытался переопределить контроллер регистрации, но получил ошибку: «Неизвестное действие-AbstractController::ActionNotFound» для всех действий на этом контроллере. Кто-нибудь знает, как отобразить информацию о профиле? Спасибо!

class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    super
  end

  def show
  end

  def update
    super
  end
end 

person Patrick    schedule 27.10.2010    source источник


Ответы (2)


Я бы попытался создать новый контроллер на основе моей модели аутентификации, допустим, моя модель аутентификации — User. Просто создайте новый контроллер и сделайте страницу шоу. Что-то вроде этого должно работать.

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
    # If this show page is only for the currently logged in user change it to @user = current_user
  end
end

Теперь просто добавьте представление, в котором вы перечисляете атрибуты, которые хотите видеть, и все готово :)

person Maran    schedule 27.10.2010

Infact devise сам по себе предлагает отличный способ настроить его.

попробуй запустить :-

 "rails generate devise_views" or in newer version of devise try the below    
 "rails generate devise:views" .

Это создаст все представления, которые вы можете редактировать, настраивать и устанавливать маршруты.
Попробуйте эту ссылку http://asciicasts.com/episodes/210-customizing-devise для получения дополнительной информации.

person Hemanth    schedule 29.10.2010
comment
Конечно, но для регистрации#show нет просмотра, только регистрация#edit и #new. И даже если вы добавите представление, devise-Controller его не поддерживает. - person Patrick; 29.10.2010
comment
Это не очень хороший ответ, потому что при запуске этой команды нет регистрации#show. - person Kees Sonnema; 04.07.2012