Activerecord query question

Hi…I am pretty new to activer record.

Struggling with formulating a simple join. I am pretty new to
activerecord and ruby.I have a database with tables ‘bugs’ and
‘longdesc’. Here are my classes:

class Bug < ActiveRecord::Base
has_many :longdescs
end
class Longdesc < ActiveRecord::Base
belongs_to :bugs
end
I am trying to formulate a simple query joining these two tables but am
having no luck. I can get a query without joining to work fine. For
example, the following works perfectly:

bugs = Bug.select(“bug_id,bug_status,short_desc”).where(:bug_id => ARGV)

Now I want to join this with the longdescs table which has column
‘thetext’ and has bugs.bug_id as the foreign key. Here is the plain ole
sql:

select B.bug_id, B.bug_status, B.short_desc, L.thetext
from bugs B, longdesc L
where B.bug_id in (300,301)
and B.bug_id = L.bug_id

Any assistance would be greatly appreciated!

Hi Rick,

It’s helpful to know which version of ActiveRecord you’re using. Here’s
my solution in ActiveRecord 3:

Bug.joins(:longdescs)

The Rails guide to ActiveRecord is very helpful =>
http://guides.rubyonrails.org/active_record_querying.html

From here you can do things like:

Bug.joins(:longdescs).where …

Hope that helps,
-Troy

Troy Surrett wrote in post #1078670:

Hi Rick,

It’s helpful to know which version of ActiveRecord you’re using. Here’s
my solution in ActiveRecord 3:

Bug.joins(:longdescs)

The Rails guide to ActiveRecord is very helpful =>
http://guides.rubyonrails.org/active_record_querying.html

From here you can do things like:

Bug.joins(:longdescs).where …

Hope that helps,
-Troy

Thanks Troy. It is ActiveRecord 3. Here is the solution that worked for
me.
bugs =
Bug.joins(:longdescs).select(“bugs.bug_id,bugs.bug_status,bugs.priority,bugs.bug_severity,bugs.short_desc,longdescs.thetext”).where(:bug_id
=> ARGV)

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