Manage as a single action in place of new/edit/create/update/show

Hello!

Has anyone refactored the REST/CRUD actions into a single "manage" action? I'm finding that often new and edit are so close the it's awfully non-DRY to have a separate new and edit action. And same with create/update. Also, sometimes, show is just edit without the submit button.

I'm wondering if there is a plugin or clean way to do this. Right now, I have the CRUD actions but they all look like:

def new   render :action => "manage" end

def edit   @object = Object.find(params[:id])   render :action => "manage" end

def create   manage end

def update   manage end

And then "manage" as an action handles the create and update actions, looking for a param[:id] to distinguish the two. And the manage view is just the form, which is filled in if the @object exists.

What I'd really love is to still have all the REST urls and helpers and such, but have them all direct to a single "manage" action.

Has anyone wrestled with this? Any pointers?

Thanks!

-Danimal

Hi

I guess you are conceptually wrong there is a huge difference in create and edit as well as update...

See creating is to create a new record..where as when updating it..ur not inserting all the values..u r just inserting those values that you have changed..So its never advisible to actually pass all the values again..

Also when creating the new record the id which is a primary key is going to get updated..and i think no one wants that to be done..wat u want is that the id of that record remains the same..only the selected value gets updated..

So I guess wat you think is not conceptually proper..Talking abt manage action or url u can set the same url for all action by editing the .htaccess file..but that doesnt mean that the action for all will be manage it will be different action for all the functions..

Hope this is clear to you...

Thanks

Dhaval Parikh Software Engineer Ruby on Rails

sales(AT)railshouse(DOT)com