Best practice: same "workflow", different context


I am trying to figure out what the best practice for the following problem might be: In my RoR app, I have an account class, and the user has to have the ability to edit it (e.g., change the email address). At the same time, I want to give an admin the chance to edit it, because, well, the targeted users might not be clever enough to do everything on their own :wink:

Of course, the editing pages should look differently (different menu, and also a different redirect after editing is complete). As a rails newbie, I can figure out two basic ways of doing this: - use the same controller, and change the page layout and redirect_to according to some information stored in the session - use the same view, and have a different controller and layout for the user and the admin

I am not quite sure which way should be preferred - the first one amounts to some case distinctions in the view and the controller, which I do not like too much, and the second one produces redundant code in the two controllers. Any suggestions, or maybe even a third possibility?

Thank you very much!

This is a tough question to answer. Basically it falls under the "Can you admin using DRY" Personally I try to create a different layout or use <% if user.is_admin? %> blocks in the view. Basically, you can do it any way, however to avoid rewriting as much code as possible I use the if block method. Here's one resource I found right away.