
最近、仕事でRailsを使って仕事をしています。
そこで、疑問点が出てきたので、ちょっとお聞きしたいと思います。
Userというテーブルがあり、それを検索するとします。
User.find(:all, :conditions => '...', :order => '...')
User.new.find(:all, :conditions => '...', :order => '...')
どちらでも同じように検索できるのですが、これはプログラムの内部的にどういう違いがあるのでしょうか?
・上はActiveRecordを使って直接DBを読みに行っている。
・下は一旦オブジェクトとして生成して、そこにActiveRecordでSQLを飛ばしてる。
そんな感じかと漠然と思ってますが、違うのでしょうか?
パフォーマンス的なことも知りたいと思っています。
よろしくお願いします。

No.1ベストアンサー
- 回答日時:
findはクラスメソッドのため、2番目の
User.new.find(:all, :conditions => '...', :order => '...')
の構文はエラーになるはずです。
こちらの環境で、実行したときはエラーになりました。
こちらの実行環境は、windows7で
ruby 1.9.2p180 (2011-02-18) [i386-mingw32]
rails3.0.7です。
findの構文を見た限りでは、rails2.Xのように見受けられますので、
rails2.Xの場合はエラーにならないのかも知れません。
ただ、rails3.Xでは使用できないことは、明らかですので、
今後のrailsのバージョンアップなどを考えると、
この構文は使用しないほうが良いかと思います。
但し、本件は「回答に自信なし」のため、
更に、正確な回答を期待すのであれば、rubyのメーリングリストに参加し、
そこで聞かれるのが確実かと思います。
rubyのメーリングリストへの参加方法は参考URLを参照ください。
参考URL:http://www.ruby-lang.org/ja/community/mailing-li …
ご回答、ありがとうございました。
rails3は、以前のバージョンと比べて大幅に変わってるみたいですね。
仕事なので、既存のプログラムは勝手にいじれませんが、今後はこの検索方法はやめていくように社内でも検討してみます。
機会がありましたら、メーリングリストにも登録してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求める...
-
(再質問)エクセルのマクロボ...
-
VBScriptでExcel(2019)上のデー...
-
Ruby require ライブラリー
-
パソコンのスクリーンセーバー...
-
教えてください
-
pythonエラー
-
<python>ノイズを時間指定して...
-
C++のCreateFile関数で、ASCII...
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ruby クラス・オブジェクト・イ...
-
ルビー言語 ライブラリー 追記
-
ruby raise句
-
ruby begin句
-
ruby ensure句
-
ルビー言語 ライブラリー(再々...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラーが起こる理由を教えてい...
-
rubyでパケットキャプチャ出来...
-
ruby.exeとrubyw.exeに違いがあ..
-
RubyでMySQLを使いたいけど。
-
小文字wと大文字Wの区別
-
ruby on railsインストールでエ...
-
プログラミング言語で大文字と...
-
COBOLのIFの入れ子について
-
VB.NETで階乗を求めるプログラ...
-
web上のhtmlファイルから文字デ...
-
画像をページ右側に並べる方法...
-
Xcodeでランダム整数
-
RubyでNo such file or directo...
-
Pro*CとCの間|変数の有効範囲
-
プログラミング講師はまだ需要...
-
rubyプログラムからrubyプログ...
-
ruby の File.exist? メソッド...
-
たびたびすいません。VBAです。
-
Ruby / passenger のインストー...
-
GoTo文について
おすすめ情報