search the records using two keys in two tables in rails -
i have models named user , service
user model has following columns: user_name
, location_name
service model has following columns: user_location
, service_name
now want search users residing in particular location , providing particular service.
the main problem user can provide more 1 service.
i have achieved functionality in following way:
serv1 = services.find_by_service_name(service_name) res = [] serv1.each |s| res.push s if s.user_location == location_name end
can suggest better way?
user can provide more 1 service
that means user
associated service
model has_many
relationship, i.e., models should like:
class user < activerecord::base has_many :services ## ... end class service < activerecord::base belongs_to :user ## ... end
next, must have foreign_key user_id
in services
table.
now want search users residing in particular location , providing particular service.
you can achieve result below mentioned query. make sure set local variables location_name
, service_name
before executing query:
user.joins(:services).where('users.location_name = ? , services.service_name = ?', location_name ,service_name)
Comments
Post a Comment