【问题标题】:Undefined method where for Array数组的未定义方法
【发布时间】:2013-10-23 14:17:41
【问题描述】:

我有这个查询,但我收到这个错误: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}'")

【问题讨论】:

    标签: sql ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    你可以这样做:

        @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}'")
    

    【讨论】:

    • 谢谢,这就是我想要的。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      相关资源
      最近更新 更多