私の理解では、どのモデルでもそのようなSQLクエリを実行でき、そのモデルのインスタンスとしてデータが返されます。find_by_sqlを読んでください。これはドキュメントの例です。はPostオブジェクトを返すことに注意してください。
Post.find_by_sql "SELECT p.title, c.author FROM posts p, comments c WHERE p.id = c.post_id"
> [#<Post:0x36bff9c @attributes={"title"=>"Ruby Meetup", "first_name"=>"Quentin"}>, ...]
Rails 3のクエリ構文では、この情報を取得するために必要なすべてが提供されます。私は可能な限り生のSQLを避けたいと思います。そうすれば、特定のデータベースにすぐに縛られることになります。インスピレーションを得るためにここを見てください。
find_by_sqlにパラメータを渡すには、次のように実行できます。
irb(main):015:0> y Location.find_by_sql(["select address, name from locations where name = :name and address = :address", {:address => "Arts Court 2 Daly Ave, Ottawa, ON", :name => "Studio B"}])
---
- !ruby/object:Location
attributes:
name: Studio B
address: Arts Court 2 Daly Ave, Ottawa, ON
attributes_cache: {}
changed_attributes: {}
destroyed: false
marked_for_destruction: false
new_record: false
previously_changed: {}