using multiple joins in queries

I have this query:

Report.                     joins(:alerts).                     joins(:alert_code).                     where(:unit_id => unit_id).                     where{time < my{self.time}}.                     where("alert_codes.name LIKE ?", "%Inside virtual fence%").                     order("reports.time DESC").first

Basically, it breaks:

ActiveRecord::ConfigurationError (Association named 'alert_code' was not found; perhaps you misspelled it?):

My associations look like this:

report has_many alerts alert belongs_to :alert_code, :foreign_key => :code

I am trying to get the first report whose alerts belongs to alert_code whose name is "inside virtual fence". So there are 3 associations here. Trying to establish the connection.

I have this query:

Report.                    joins(:alerts).                    joins(:alert_code).

I think that you're looking for 'includes' rather than 'joins' for these associations.

Report.includes({:alerts => :alert_code}).

To use joins, you would have to supply more SQL-ish clauses, not symbols for the associations.

http://apidock.com/rails/v3.2.8/ActiveRecord/QueryMethods/joins http://apidock.com/rails/v3.2.8/ActiveRecord/QueryMethods/includes

-Rob

I have this query:

Report.

               joins(:alerts).
               joins(:alert_code).

I think that you’re looking for ‘includes’ rather than ‘joins’ for these associations.

Report.includes({:alerts => :alert_code}).

To use joins, you would have to supply more SQL-ish clauses, not symbols for the associations.

joins accepts either association names or sql clauses. When passing association names the syntax is the same as for includes, in particular you have to specify nested associations as a hash (as you have done).

Fred