简体   繁体   中英

Undefined method where for Array

I have this query, but I get this error: undefined method `where' for #Array:0x0000000443cd18

@kpig = KpiGroups.find_by_sql('select * from (
      select lk.login,sdf.* from (select kg.id, kg.name as "GROUP_NAME", kt.name, kt.id as "KPI"
      from spartacus.kpi_groups kg, spartacus.kpi_types kt left outer join (select kpiid as kpi, max(max_value) as max_val ,min(min_value) as min_val
      from (select kpiid,max_value,min_value from spartacus.stations group by  max_value,min_value,kpiid) group by kpiid) sel on(sel.kpi=kt.id) where  kt.parentcatalogid=kg.id) sdf
      left outer join spartacus.LKBs lk on lk.kpi_id=sdf."KPI" )').where("login = '#{current_user.login}'")

find_by_sql方法返回Array而不是ActiveRecord::Relation实例。

You can do:

    @kpig = KpiGroups.find_by_sql("select * from (
  select lk.login,sdf.* from (select kg.id, kg.name as GROUP_NAME, kt.name, kt.id as KPI
  from spartacus.kpi_groups kg, spartacus.kpi_types kt left outer join (select kpiid as kpi, max(max_value) as max_val ,min(min_value) as min_val
  from (select kpiid,max_value,min_value from spartacus.stations group by  max_value,min_value,kpiid) group by kpiid) sel on(sel.kpi=kt.id) where  kt.parentcatalogid=kg.id) sdf
  left outer join spartacus.LKBs lk on lk.kpi_id=sdf.KPI ) where login='#{current_user.login}'")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM