Why is Object nil?

I’m receiving the

“Called id for nil, which would mistakenly be 4 – if you really wanted
the id of nil, use object_id”

Error Message, when my controller tries to get an object’s id.

In my page users can register, login, create new game entries, rate them
and leave a review.

the create method in the ratings controller is the exact same as in the
review controller. (with different names of course)

def create
@game = Game.find_by_id(params[:game_id])
@rating = Rating.new(params[:rating])
@rating.game_id = @game.id
@rating.user_id = current_user.id
end

Giving a rating works perfectly, but assigning the game.id to
@review.game_id causes me the error…

but my relations are set, what can possibly be wrong? why is the game
object not nil when trying to create a rating, but nil when I want to
create a review?

On 24 March 2013 12:10, Ryo S. [email protected] wrote:

the create method in the ratings controller is the exact same as in the
@review.game_id causes me the error…
The error is saying that @game is nil. Look in development.log when
the method is called to see what params[:game_id] is set to. If you
still can’t see it then put some print statements in the method to
print the value of params[:game_id] and to show whether @game is nil.

Also have a look at the Rails Guide on debugging which will show you
techniques that you can use to debug your code.

Colin

Maybe I need an intersection table joining Reviews and games?

On 24 March 2013 13:16, Ryo S. [email protected] wrote:

Maybe I need an intersection table joining Reviews and games?

Is that in answer to my post? If so it does seem to address my
points. I don’t see what the reviews table has got to do with your
problem as seems to be purely an issue of looking up a game id in the
database.

Colin