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

Hi Christopher,

remember, = is not equal, the correct is

if current_user.id == @game.user_id

and look at this

https://github.com/ryanb/cancan

maybe help you.

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

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 Kumar