if current_user.id = @game.user_id
@game = Game.find(params[:id])

Wait, what?

@game is initially null. So, you should first fetch the game we're talking 
about.

@game = Game.find(params[:id])

Now, check if the game is indeed a valid game.

@game = Game.find(params[:id])
if @game
else
    format.html { redirect_to root_url }

end

Check if the current user is the game's user. Note that as @Martin Aceto 
pointed out, equal conditional operator is ==

@game = Game.find(params[:id])
if @game
    if current_user.id == @game.user_id
        format.html
    else
        format.html { redirect_to root_url }
    end
else
    format.html { redirect_to root_url }

end





Dheeraj Kumar


On Tuesday 7 February 2012 at 8:27 PM, Martin Aceto wrote:

> On Tue, Feb 7, 2012 at 11:39 AM, Christopher Jones <[email protected] 
> (mailto:[email protected])> wrote:
> > Hi all,
> > 
> > Just wondering about equality in rails for access to certain features
> > such as the following.
> > 
> > I have a table for games and all users are able to click on the show
> > button to display the actual record. On the show page it has the options
> > to go back or edit. I want to do the following
> > 
> > If the current_user equals the id associated with the game
> >     Then allow the to edit
> >  else
> >     redirect the back to the product show page
> >  end
> > 
> > The only line I am not sure on how to do is to match current user with
> > the id associated user_id of the game.
> > 
> > Any suggestions?
> > 
> > what I have is the following but no luck:
> > 
> >  def edit
> >    if current_user.id (http://current_user.id) = @game.user_id
> >    @game = Game.find(params[:id])
> >    else
> >    format.html { redirect_to root_url }
> >    end
> >  end
> > 
> > --
> 
> Hi Christopher,
> 
> remember, = is not equal, the correct is
> 
> if current_user.id (http://current_user.id) == @game.user_id
> 
> and look at this
> 
> https://github.com/ryanb/cancan
> 
> maybe help you.
> 
> -- 
> Martin 
> -- 
> 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 [email protected] 
> (mailto:[email protected]).
> To unsubscribe from this group, send email to 
> [email protected] 
> (mailto:[email protected]).
> 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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to