h-kageyuの日記

2011-01-18

Ruby on Rails 3 その3

09:07

Rails3 の ActiveRecord で1件だけを返したいときは、Users.first

や Users.last のようにすればよい。

SQL的には LIMIT 1 が付くだけ( last の場合は ORDER BY users.id

DESC LIMIT 1)なのですが。

また複数行の結果を得るために、今までは(直感で)

@users = Users.where("name" => params[:name],
                     "state" => 1)

とやっていたのだけど、これだと SQLインジェクションに対応できな

いので、

@users = Users.where("name = ? AND state = ?"
                     ,params[:name],
                     1)

とやればいいことがわかった。

http://guides.rubyonrails.org/active_record_querying.html

下記もよく書かれて参考になった。

http://d.hatena.ne.jp/takihiro/20100923/1285215139

Ruby3で困ったこと。

http://d.hatena.ne.jp/seiunsky/20101124/1290615707

またログを追加したいなぁと思ったら直ぐに解決。

http://d.hatena.ne.jp/elm200/20070506/1178447492

http://blog.s21g.com/articles/212

config/routes.rb について細かく説明されている。

http://irohiroki.com/2010/08/29/rails3-routes