2013-01-16 2 views
0

Je ne suis pas sûr de ce que la meilleure façon, mais d'une certaine façon, je suis en train de me mélanger moi-même. Ce que j'essaie de faire est un moyen pour un administrateur d'entrer dans un profil d'utilisateur et de modifier des éléments.Rails concevoir ajouter le routage de gestion

Route

devise_for :customers, :controllers => {:registrations => 'registrations'} 
    resources :usermanagements 

Contrôleur

class RegistrationsController < Devise::RegistrationsController 
    def update 
    # required for settings form to submit when password is left blank 
    @customer = Customer.find(current_customer.id) 
    if @customer.update_attributes(params[:customer]) 
     set_flash_message :notice, :updated 
     # Sign in the customer bypassing validation in case his password changed 
     sign_in @customer, :bypass => true 
     redirect_to after_update_path_for(@customer) 
    else 
     render "edit" 
    end 
    end 

    def edit 
    @customer = current_customer 
    end 
end 

Contrôleur

class UsermanagementsController < ApplicationController 
    def index 
    @usermngmts = Customer.paginate(:page => params[:page], :per_page => 30) 
    end 
    def show 
    @usermngmts = Customer.find(params[:id]) 
    end 
end 

inscription Vues/edit.html.erb

# i am trying to designate this one for public view 
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %> 
... 
<% end %> 

Cela fonctionne

Vues usermanagements/index.html.erb

<% @usermngmts.each do |usrmngmt| %> 
    <%= usrmngmt.incomplete_name %> 
    <%= link_to ... i would like to go to the edit of usermanagement controller but get usermngents/userid/edit %> 
    </div> 
<% end%> 

la meilleure approche pour ne pas mélanger ces deux contrôleurs

Répondre

1

Je ne suis pas tout à fait clair sur ce que vous essayez à faire, mais si vous vouliez fournir un contrôleur séparé pour qu'un administrateur puisse gérer des enregistrements (ou des clients), vous pouvez toujours créer un espace de noms "admin", puis utiliser admin/registrations et admin/clients routes et actions, avec un accès limité aux administrateurs.

Plus d'informations sur les espaces de noms ici: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing