ActiveRecordのselectメソッドの"*"をシンボルで書く方法はありますか？


joinsで結合したとき、結合するテーブルの列も全て取得するのに下記のように書くと思いますが、

[code]

    User.joins(:comments).select("*")
    
[/code]

"*"の部分をシンボルで書く方法はありますか？  
:allでいけるかなと思いましたが、だめでした。。。




select を文字列で実行する際には、その中身が、 SQL 分の SELECT のカラムの式として適切である必要があります。

なので、おそらく次のようにすると select 自体は実行できると思います。

[code]

    User.joins(:comments).select('users.*', 'comments.*')
    
[/code]

また、一般的に rails で join された結果の中身も取得したいときは、 `includes` などがよく使われると思います。

[code]

    User.includes(:comments)
    
[/code]

こうすることで、例えば今回であれば、取得された user レコードに対して、

[code]

    user.comments
    
[/code]

のような形で、 Comment オブジェクトたちを取得できます。

