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.

On Mar 20, 2013, at 6:04 PM, John M. wrote:

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

On Thursday, March 21, 2013 2:33:24 AM UTC, Rob B. wrote:

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs