Rials varable becomes nill on a render

This happens because you are calling the render method instead of
redirect_to. Calling render causes the invocation to “render” the new
view and the new action (method) is never invoked. If you change that
to redirect_to it will call the action you want.

The net/net is the… render basically passed control to the view,
redirect_to passes control to the actual action method.

hope that helps,

~harris

First off apologies for a rails question on the ruby list, but the
rails mailing list sign-on page seems to be down at the moment so I
thought I would look for help here.

Bearing in mind I am very new to Rails… I have a create action:

def create
@post = Post.new(params[:post])
if @post.save
@post.tag_with(params[:tag_list])
flash[:notice] = ‘Post was successfully created.’
redirect_to :action => ‘list’
else
@tag_list = params[:tag_list]
render :action => ‘new’
end
end

if the @post.save returns false the user is presented with the new
view again:

def new
@tags = Tag.find(:all)
@post = Post.new
end

On the initial call to new the new view displays a list of tags from
the array @tags. If the create action fails and the render :action =>
‘new’ line is executed the @tags variable becomes nill

How come this happens? and is there a ‘clean’ was of keeping the
@tags variable as it should be no matter how many times the create
action fails??

Any help will be gratefully received.

David.

Thank you.