2010-11-06 10 views
1

J'ai un Rails 3 App avec Devise ...Rails 3 - Mise en place d'un contrôleur de compte w Vues

Je veux créer un contrôleur de compte qui permettra à l'utilisateur de mettre à jour leur compte, des choses comme le profil, compte , Avis, mot de passe, etc ...

Voici ce que j'ai fait jusqu'ici.

I généré un contrôleur de compte qui m'a donné les résultats suivants:

Routes:

get "account/profile" 
    get "account/password" 
    get "account/notices" 

Vues EXISTE maintenant donné les noms ci-dessus/vues/compte/...

Mon contrôleur

class AccountController < ApplicationController 

    before_filter :authenticate_user! 

    def profile 
    @user = User.find(current_user.id) 
    end 

    def password 
    end 

    def notices 
    end 

    def privacy 
    end 

    def disable 
    end 

end 

Voir pour le profil du compte:

<% form_for @user, :html => { :multipart => true} do |f| %> 

Le problème est que fait la forme comme:

<form accept-charset="UTF-8" action="https://stackoverflow.com/users/13" class="edit_user" enctype="multipart/form-data" id="edit_user_13" method="post"> 

Et je veux que ce soit comme /account/profile/update qui est où la forme doit poster ?

C'est la première fois que j'ai fait quelque chose comme ça. Suis-je sur la bonne voie? Comment ajouter la partie/compte/profil/mise à jour? Ajouter quelque chose dans la route et changer l'étiquette de forme ??? Y a-t-il une façon plus propre de faire cela sur la route?

Merci

Répondre

2

Vous devez en tenir aux routes RESTful lorsque cela est possible. Au lieu d'avoir des URL comme /profile/123/update, l'alternative RESTful serait /profile/123 via HTTP PUT

lire pour plus d'informations sur les itinéraires RESTful dans Rails 3: http://edgeguides.rubyonrails.org/routing.html

Aussi, jetez un oeil à l'aide des ressources imbriquées dans vos itinéraires pour profils, avis, etc. (section 2.7 dans les rails doc):

resources :accounts do 
    resources :profiles, :notices 
end 

Par exemple, faire une édition à l'aide d'une ressource imbriquée vous donnera des itinéraires comme ceci:

/accounts/123/notices/3/edit 
Questions connexes