Permettre à un utilisateur d'ajouter de nouveaux utilisateurs à Concevoir, et de rester connecté en tant qu'eux-mêmes

Je suis en utilisant Ruby on Rails avec Concevoir, Rails 4.1.0.rc1, Ruby 2.1.0p0, concevoir-3.2.4

J'ai suivi le tutoriel de Rails en Fonte Épisode n ° 209 d'obtenir concevoir installé et fonctionne. Je peux me connecter et de se déconnecter et d'enregistrer de nouveaux utilisateurs.

J'ai étendu mon modèle utilisateur pour inclure la non-modification des informations comme la date de naissance, nom et prénom.

Suivant ce blog, j'ai ajouté un contrôleur utilisateur & vues pour ajouter des fonctionnalités supplémentaires, telles qu'une liste de tous les utilisateurs que je n'ai pas vu de concevoir.
https://github.com/danweller18/devise/wiki/Allow-Users-to-View-Profile-and-List-All-Users

J'ai aussi examiné ces questions sur Stack overflow:
Permettant aux administrateurs d'ajouter des utilisateurs à Concevoir
Comment puis-je personnaliser le contrôleur de l'enregistrement dans la Concevoir?
Ruby on Rails: la Coutume de Concevoir l'Enregistrement Contrôleur, vous Demandant De Créer une Action

Je suis nouveau sur ruby on rails depuis le 1er Mars de cette année, et qui ont pris de Mike & Nicole Clarks Rails 1 & 2 Rails de cours en ligne.

Ce que je suis en train de faire est de permettre à un utilisateur d'ajouter de nouveaux utilisateurs. Finalement, cette fonction devrait être un administrateur ou gestionnaire de l'ajout de clients. Le client doit alors être en mesure de se connecter avec les identifiants créés.

Ce qui se passe, c'est que je peux être connecté, d'ajouter un nouveau "utilisateur" par le biais de la new_user_path et la vue de l'utilisateur (par opposition à la concevoir de vue) mais quand je le présente, je suis connecté en tant que nouvel utilisateur. Les utilisateurs précédents n'est pas persistant.

Je suis en train de faire tout cela via la vue des utilisateurs & actions de contrôleur parce que je ne veux pas en réalité "s'inscrire" ou login & déconnexion avec ces actions, il suffit de créer de nouveaux enregistrements dans la table user qui serait alors en mesure de se connecter sur leur propre.

Toute aide est appréciée.

voici mon contrôleur utilisateur:

class UsersController < ApplicationController

    def index
        @users = User.all
    end

    def show
      @user = User.find_by_id(params[:id])
    end

    def new
        @user = User.new
    end

    def edit
        @user = User.find(params[:id])
    end

    def update
        @user = User.find(params[:id])
        if @user.update_attributes(user_params)
            redirect_to user_url, notice: "Updated User."
        else
            render :edit
        end
    end

    def create
        @user = User.new(user_params)
        if @user.save
            redirect_to user_url, notice: "User succesfully created!" 
        else
            render :new
        end
    end






private

def user_params
  params.require(:user).permit(:first_name, :last_name, :img_file_name, :email, :password, :password_confirmation, :birthdate)
end
end

Voici mon contrôleur d'application:

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

before_action :configure_permitted_parameters, if: :devise_controller?


protected

    def configure_permitted_parameters
        devise_parameter_sanitizer.for(:account_update) {|u| 
            u.permit(:first_name, :last_name, :birthdate, :img_file_name, :email, :password, :password_confirmation, :current_password)}
        devise_parameter_sanitizer.for(:sign_up) {|u| 
            u.permit(:first_name, :last_name, :birthdate, :img_file_name, :email, :password, :password_confirmation, :current_password)}
    end




end

Voici mon nouveau.html.erb fichier: (Administrateurs Seulement est juste un rappel pour moi, il n'y a pas d'admin fonction à leur moment)

<header id="content-header">
  <h1>Create a New User (Admins Only)</h1>
</header>

<%= render 'form' %>

Ici est la _form.html.erb

<%= form_for(@user) do |f| %>
<%= render "shared/errors", object: @user %>
<fieldset>
<ol>
<li class="required">
<%= f.label :first_name %>
<%= f.text_field :first_name, size: 40, autofocus: true %>
</li>
<li class="required">
<%= f.label :last_name %>
<%= f.text_field :last_name, size: 40 %>
</li>
<li class="required">
<%= f.label :email %>
<%= f.email_field :email, size: 40 %>
</li>
<li class="required">
<%= f.label :password %>
<%= f.password_field :password, size: 40 %>
</li>
<li class="required">
<%= f.label :password_confirmation, "Confirm Password" %>
<%= f.password_field :password_confirmation, size: 40 %>
</li>
<li >
<%= f.label :birthdate %><br/>
<%= f.date_select :birthdate, start_year: 1915 %><br/>
</li>
<li >
<%= f.label :img_file_name %><br/>
<%= f.text_field :img_file_name %>
</li>
</ol>
<p>
<% if @user.new_record? %>
<%= f.submit "Create Account" %>
<% else %>
<%= f.submit "Update Account" %>
<% end %>
<%= link_to "Cancel", users_path, class: 'button' %>
</p>
</fieldset>
<% end %>
  • Je vous suggère une interface d'administration gem tels que Rails Admin ou administration pour gérer les utilisateurs.
  • Dans l'action de création ..après la sauvegarde, il suffit de vérifier que l'administrateur a créé un justificatif d'identité ou l'utilisateur a créé un justificatif d'identité .. si l'administrateur a créé un justificatif d'identité, puis de l'enregistrer et de rediriger vers chemin_admin d'autre rediriger vers user_path
  • Soit u peut utiliser rails admin gem ou de créer une action dans votre contrôleur admin_only et ajouter la contrainte d'elle .. et dans votre contrôleur ajouter before_save :admin_only ...
  • sp1rs, pouvez-vous préciser ce que vous entendez par la création d'un justificatif d'identité? Est-ce quelque chose que concevoir offre?
  • Je vais regarder dans les Rails admin gem, mais j'aimerais comprendre pourquoi ce que je fais fonctionneront ou pas. Merci à tous.
  • identification des moyens d'enregistrer les détails de l'utilisateur en db.. au Lieu d'utiliser des rails admin gem .. je préfère la création de votre propre action de l'utilisateur du contrôleur et de permettre l'accès de nouveaux , de créer de l'action à l'admin seulement .. il donnera u plus de flexibilité ..
  • aha! donc, pensez-vous que dans cette ligne ici: redirect_to user_url, avis: "l'Utilisateur créé avec succès!" Je le dis d'aller de l'utilisateur je VIENS de créer? Qui pourrait être le billet! Maintenant, je comprends votre premier commentaire, et il est logique d'avoir l'admin y fonctionner. Merci.
  • u bienvenue ..:)

InformationsquelleAutor Shazam | 2014-04-17