Ruby on Rails Equality

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 = @game.user_id
@game = Game.find(params[:id])
else
format.html { redirect_to root_url }
end
end

On Tue, Feb 7, 2012 at 11:39 AM, Christopher J.
[email protected]wrote:

Then allow the to edit

def edit
if 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 == @game.user_id

and look at this

maybe help you.


Martin

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 A.
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 K.

Been working on it this afternoon guys and made a fair few tweaks and it
has resulted in success.

Thanks for all the help guys.

You’re welcome :slight_smile:

Dheeraj K.