質問: '1'")` このようにダブルクォーテーションで囲んで、数字だけシングルクォーテーションで囲んでたり、 ハッシュのようになっていたりするのはどういう意味なんでしょうか? orderメソッドについても("created_at DESC")のような直感的ではない引数の渡し方などがあったり、これらのメソッドが内部でどういう処理をしているのかを少し教えていただきたいんですが、 細かい教え方ではなくてもSQLを走らせるためのメソッドをRubyで書くにはこうする必要がある、などの回答でも大丈夫なので、詳しい方ぜひ教えていただけませんか?
回答: ActiveRecordは最終的にSQLを発行します。 > orderメソッドについても("created_at DESC")のような直感的ではない引数の渡し方 この場合はSQLそのままなので、逆に直感的と言えます。 SQLが先であり、Rubyが先ではないのです。 > > Page.where("category_id = '1'") > > > これはSQLのWHERE文そのままですから、これも非常に分かりやすいですね。 ただ、SQLインジェクションが入り込む余地があるので、 `Page.where("category_id = ?", 1)`または、`Page.where(category_id: 1)`とするべきでしょう。 いろいろな書き方をサポートする事で、柔軟にSQLを表現できるようになっています。 余裕があれば、Railsを学習しながらSQL単体での学習をおすすめします。 データベースを扱う以上、SQLをきちんと知っておいたほうが応用力がつきます。