Added view (data pull thru 2 tables so a little more trickier than colors and resolutions, so used the loop to build an IN statement in the SQL for the id's based on which ones were found in the first find. 🙂
Initially found that only some data was only getting returned but then realized that loop.osrcid should be loop.osid to pull the id from the referenced detail table, not (it's) 2nd referenced table.
# # operating systems - *** looping and making sure to allow MULTIPLE ANDS for OS versions *** by os_source! # so we're checking for os_source... but adding operating_system (osrcid)... and that is as intended. @the_operating_systems_by_os_source = '' # to prevent errors @the_db_operating_systems = OperatingSystem.find_by_sql("select OS.id as osid, OSRC.id as osrcid, Concat(OSRC.source,' ',OS.operating_system_name) as os_name_source, OSRC.source from operating_systems OS join os_sources OSRC on OS.os_source_id = OSRC.id order by os_name_source") if (params[:os_source]) @the_operating_systems_by_os_source = ' AND operating_system_id IN (-1' @the_db_operating_systems.each do |loop| if loop.source.upcase == (params[:os_source].upcase) @the_operating_systems_by_os_source+= ',' + loop.osid # see above comment for use of osrcid end end @the_operating_systems_by_os_source+= ')' end #