0

私が走るとき

             sql = "select count( school_id ) as vote_total,
                  row_number() over( order by  count( school_id ) 
                  DESC ) as rank, school_id
                  from votes
                  where school_id = 111111
                  group by school_id"

phpPgAdmin で、探しているものを取得します

      vote_total rank school_id
             68    1  111111

しかし、Vote.find_by_sqlで同じことをすると、

     [#<Vote id: nil, school_id: 111111>]

find_by_sql は私が使用すべきものではないと推測しています。これを行う適切な方法について何か考えはありますか?

4

1 に答える 1

2

以下のように、vote_total と school_id を取得できます

sql = "select count( school_id ) as vote_total,
                  row_number() over( order by  count( school_id ) 
                  DESC ) as rank, school_id
                  from votes
                  where school_id = 111111
                  group by school_id"

votes = Vote.find_by_sql(sql)
votes.first["vote_total"] #or votes.first.vote_total
voted.first["school_id"] #or votes.first.school_id

vote_total と school_id は Vote の属性ではないため、これらのゲッター メソッドは定義されていません。

于 2013-10-05T20:12:57.850 に答える