I’m developing an application with optional sign up. I want to allow users, with and without accounts, to be able to add links. How could I assign a user’s session[user_id] to the user_id column of Link if they’re signed in when creating a link?
Current code: user_id remains nil in either case
def create
@link = Link.new(params[:link])
if @link.save
flash[:notice] = "The link was successfully added"
redirect_to :action => :hot
else
redirect_to :action => :new
end
end
I’m imagining something like this..
def create
if session[:user_id]
#@link equals new link params with user_id = session[:user_id]
else
@link = Link.new(params[:link])
end
if @link.save
flash[:notice] = "The link was successfully added"
redirect_to :action => :hot
else
redirect_to :action => :new
end
end
The link will be saved with params[:link] even if the user isn’t logged-in.
Be cautious to use render, not redirect_to, when a validation fails (see if you want http://guides.rubyonrails.org/action_controller_overview.html)