Named Scopes and Failed Actions

Hello all,

I have a named scope ‘profile’ that points to ‘users/edit’ (there is no id as I’m using Authlogic). When the update fails, I want to keep the same url /profile and keep my error messages. How do I do this? Using render :action => ‘edit’ or ‘profile’ (I set up a profile template to test it) Redirect allows me to keep the url but I lose the error messages.

Am I doing something ultra simple wrong?

Thank you

-ants

Ants Pants wrote in post #958778:

Hello all,

I have a named scope 'profile' that points to 'users/edit' (there is no
id
as I'm using Authlogic).

Did you mean a named *route*? This doesn't make sense with a named
scope.

When the update fails, I want to keep the same
url
/profile and keep my error messages. How do I do this? Using render
:action
=> 'edit' or 'profile' (I set up a profile template to test it) Redirect
allows me to keep the url but I lose the error messages.

Try render :template instead.

Best,

I did mean route, yes (it was late, I was tired)

render :template => is the same as :action =>, it changes the url to users/:id, I want to keep my /profile url upon failure.

Please quote when replying.

Ants Pants wrote in post #958927:

I did mean route, yes (it was late, I was tired)

render :template => is the same as :action =>, it changes the url to
users/:id, I want to keep my /profile url upon failure.

...which render :template will do. Did you try it yet?

Best,

Yes, I have tried it as I said. It was one of the first things I did try. As I said, it acts like render :action and this is from the docs … Template rendering works just like action rendering except that it takes a
path relative to the template root. The current layout is automatically
applied.

You have a named route for the edit-action, but don’t use one for
the update-action, right?
I think there is the answer to find. Make a new post-only named
route for your update action.

Or don't use another route but define your resources with :as =>

“profile”

resources :users, :as => "profile"

Could this work for you?

Ants Pants wrote in post #959111:

Best,
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to

rubyonrails-talk+unsubscribe@googlegroups.com<rubyonrails-talk%2Bunsubscribe@googlegroups.com>

.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

Yes, I have tried it as I said. It was one of the first things I did try.

As I said, it acts like render :action and this is from the docs .....
Template rendering works just like action rendering except that it takes
a
path relative to the template root. The current layout is automatically
applied.

Hmm. My recollection is that render :action or render :template should
not change the URL of the already selected controller action, so you
should still see the profile URL. I'm not sure why this wouldn't work,
unless you've got some JavaScript doing funny things, or unless I'm
misremembering.

Best,