5

Rails 3 では、データベースにアクセスしたい場合、クエリの最後に .all を付けます。これは、書き込み時にキャッシュを更新するなどの作業を行う場合に役立ちます (したがって、読み取りは常にキャッシュにヒットします)。

Rails 4 では、Model.all はActiveRecord::Relationオブジェクトを返します (つまり、データベースにヒットしません)。実際にデータベースに移動して、指定されたレコードを返す最良の方法は何ですか?

4

1 に答える 1

8

Model.all.to_aRails 4 では、Rails 3 と同じ結果が得られModal.allます。

改める:

@Bigxiang は、彼のコメントで try と指摘しましたModel.all.load。このメソッドは特定のデータベースにヒットしますが、それでも ActiveRecordRelation を返します。Model.all基本的に「Rails 3」と同様の機能を得るto_aには、返されたを呼び出すことができますActiveRecordRelation

于 2013-08-27T04:03:39.243 に答える