Error occured while evaluating nil

This is the code

if !params[:ratings].nil?     params[:ratings].each_key do |r|         @selected_ratings << r         @movies << Movie.where('rating = :rating', :rating => r)         @sort = params[:sort]       end elsif     @selected_ratings = @all_ratings     @movies = Movie.order(@sort)     @sort = params[:sort] end

This is the error

You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.<<

The clue is often in the error message, it is worth reading it carefully. It is saying that you have something << where the something is nil. You have not told us which line it is failing on, but presumably it is either @selected_ratings or @movies. What are they set to before the lines you have shown us?

Colin

if !params[:ratings].blank? && params[:ratings].is_a?(Array)   params[:ratings].each do |rating|     (@selected_ratings ||= ) << rating     @sort = params[:sort]     (@movies ||= ) << Movie.where("rating = ?", rating)   end else   @selected_ratings = @all_ratings   @sort = params[:sort]   @movies = Movies.order(@sort) end

Hi,

Maybe i should explained a bit more about the problem. So the thing is that that i have a movie table in the database with properties such as titile, rating etc. Now i have a check box of ratings like ['G','PG','R']. When a user selects one or more of these check boxes then i have those in my params[ratings]. For example if he chooses 'R' and 'G' then my params[rating] would be ['G', 'R']. Now, what i want to do is to have only those movies which have the following ratings in my @movies and for that i am trying to use

        @movies << Movie.where('rating = :rating', :rating => r)

but it fails I have tried to use

        @movies = Movie.where('rating = :rating', :rating => r)

But in this case i have movies selected with respect to one particular rating for example only 'R' rated movies are shown.

Also i cannot do @movies = because i have movies with properties such as title etc...

One more thing to add, i am new to web and database related stuff :slight_smile:

Hi,

Since you have not quoted the previous reply we do not know whether this is in reply to Jordan's suggestion. If it is in reply to his suggestion then you should quote it and make clear why it does not work.

Colin

Colin Law wrote in post #1080610: