Rails 3 - Devise Gem - Как управлять пользователями через интерфейс CRUD - PullRequest
3 голосов
/ 19 апреля 2011

Devise Gem используется для аутентификации.Мне нужно иметь индекс пользователя и показать представление.Нашел это, как в разработке вики, однако, поиграл, не может заставить его работать.

Devise - How To: Управление пользователями через интерфейс CRUD

Метод 1: Не забудьте удалить: registerable модуль из модели Devise (в моем случае это былМодель пользователя) Обязательно поместите свой map.resources: users под map.devise_for: маршрут пользователей (devise_for: пользователи и ресурсы: пользователи для Rails 3).

Метод 2: devise_for: users,: path_prefix => Ресурсы 'd': пользователи должны изолировать логику устройства от вашего пользовательского элемента управления

Мой вопрос: 1. Если вы удаляете регистр в модели, то как работает устройство для пользователя?2. Если вы сделали это, можете ли вы предоставить образец?

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 04 мая 2012

У меня сработало следующее.

users_controller.rb

class UsersController < ApplicationController
...
  def create
    @user = User.new(params[:user])

    if params[:user][:password].blank?
      params[:user].delete(:password)
      params[:user].delete(:password_confirmation)
    end

    respond_to do |format|
      if @user.save
        format.html { redirect_to users_path, notice: 'User was successfully created.' }
      else
        format.html { render action: "new" }
      end
    end
  end
...
end

routes.rb

...
devise_for :users, :path_prefix => 'd'
resources :users
...

Надеюсь, это поможет вам.

С уважением, Джакомо

3 голосов
/ 20 апреля 2011

Помещая соответствующие файлы new.html.erb, edit.html.erb, _form.html.erb и т. Д. В папку User Views, добавление / редактирование / удаление пользователей должно работать не так, как в любом другом CRUD, в качестве пользователя Devise.это другая модель, как любая.Я не буду публиковать новые или редактировать erbs (достаточно просто, и скаффолд может показать вам все остальное), но пример моего пользователя _form.html.erb ...

<%= form_for(@user) do |f| %>
   <%= render :partial => 'shared/errors', :locals => { :content => @user } %>

   <div class="field">
      <%= f.label :email %><br />
      <%= f.text_field :email %>
   </div>   

   <div class="field">  
      <%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
      <%= f.password_field :password %>
   </div>

   <div class="field">
      <%= f.label :password_confirmation %><br />
      <%= f.password_field :password_confirmation %>
   </div>

   <div class="field">
      <%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
      <%= f.password_field :current_password %>
   </div>

   <div class="actions">
      <%= f.submit %>
   </div>

<% end %>

В моем,Я думаю, что я ушел: регистрируемый в, и я все еще могу администрировать и обновлять пользователей через CRUD.Если вы пропустите это, то пользователи не смогут зарегистрироваться, но вы все равно сможете добавлять и редактировать пользователей самостоятельно (конечно, защитите контроллер Users с помощью load_and_authorize_resource, чтобы не пускать обычных пользователей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...