I need to query joining tables without using the primary key(id).
class User < ActiveRecord::Base
has_one :participant
end
class Participant < ActiveRecord::Base
belongs_to :user
end
The User has ‘id’ and ‘name’.
The Participant has ‘user_id’ which is User.id
I am trying to find the Participant.id by querying with User.name
What I have tried is,
participant_id = Participant.all :joins => :users, :conditions => {:name => "Susie"}
If you’re just looking for a specific user’s participant id, you could just go:
Since your user has a has_one relation to Participant(which belongs to it — so basically a one-to-one) you can just go call participant on user. ActiveRecord takes care of the join magicks for you