でも、それぞれの戻り値のデータ型に違いがある。
①find_by_sqlを使う方法
②select_allを使う方法
find_by_sqlを使う方法だと、戻り値はActiveRecordオブジェクトの配列となり、select_allを使うとハッシュの配列となる。
なので、たとえばarticlesテーブルのモデルArticleに対して、このテーブルがdetailというカラムを持っているとしよう。このとき、
articles = Articles.find_by_sql("select * from articles")
とすると、articlesテーブルのある行のdetailカラムへのアクセスは、
articles[0].detail
となり、
articles = Articles.connection.select_all("select * from articles")
とすると、
articles[0][detail]
となる。
ちょっと注意ですね。
0 件のコメント:
コメントを投稿