Ruby on Rails
Monday, May 16, 2011
if it has no knowledge of @user in the 'new' action, why do I need to do @user = User.new? What is the point, if it will be lost for other actions?
I thought that all that i wrote with '@' in ruby was an instance variable, meaning it is accessible to the whole instance, meaning any of its methods.
On Tue, May 10, 2011 at 4:32 PM, Colin Law <clanlaw@googlemail.com> wrote:
On 10 May 2011 21:23, Rodrigo Ruiz <rodrigo.ruiz7@gmail.com> wrote:Each action in the controller is a new request to the web server so
> Hi, I'm having some trouble to understand the following code:
> def new
> @user = User.new
> @title = "Sign up"
> end
>
> def create
> @user = User.new(params[:user])
> if @user.save
> flash[:success] = "Welcome to the Sample App!"
> redirect_to @user
> else
> @title = "Sign up"
> @user.password = ""
> @user.password_confirmation = ""
> render 'new'
> end
> end
> Since I do '@user = User.new' in the 'new' method, why do i need to do it
> again '@user = User.new(params[:user])' instead of
> '@user.update_attributes(params[:user])' in the 'create' method?
the create action has no knowledge of @user set up in the new action.
It can only go by what is in params.
Render will re-show the 'new' page, with the form for filling in the
> Also I don't get the difference between 'render' and 'redirect_to', what
> I read was that 'render' doesn't clean out the variables, whereas
> 'redirect_to' does, so back to the first question...
new user so the user can fix the errors @user still has the values
from the data was submitted last time so the form will show the same
data again. The redirect causes the 'show' *action* to be run for the
user, which results in that user being shown.
Colin
--
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.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
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.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment