Railsで生SQLを使う際にパラメータを利用する方法


Railsで生sqlを利用して下記のようなsqlを書きました。

[code]

    【Like table】
    id
    action_user_id
    target_user_id
    
    sql
    @user = ActiveRecord::Base.connection.select('select target_user_id, count(id)  from Likes where action_user_id is ##### group by target_user_id order by count(id)')
    
[/code]

上記の###にパラメータを渡し、

[code]

    @id = User.find(#).id
    @user = ActiveRecord::Base.connection.select('select target_user_id, count(id)  from Likes where action_user_id is @id group by target_user_id order by count(id)')
    
[/code]

のようにするにはどうしたらよいでしょうか。

アドバイスお願いします。




(直接の回答ではありません)
目的が生SQLを書くことでは無く、そのSQLと等価なことをしたいというのであれば、ActiveRecordを普通に使うことで実現可能です。

[code]

    @user = Like.where(:action_user_id => @id).group(:target_user_id).order("count(id)").select("target_user_id, count(id) AS count")
    @user.map { |u| [u.target_user_id, u.count] }
    #=> [[1, 4], [2, 4], [0, 5], [3, 10], [4, 12]] こんな感じで出ます
    
[/code]

もちろん、`where("action_user_id = ?", @id)` としてプレースホルダを使うこともできます。

