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.