Railsの勉強しました。

検索

・find

find(keys)

keys:主キー値

例)

def find
  @persons = Person.find([1,3,5])
  render welcome/list
end

・find_by_xxxx

find_all_by_XXXXX(value)
find_by_XXXXX(value)

XXXXX:フィールド名
value:検索値

find_by_xxxxメソッドは、結果が複数であっても常に先頭の1件のみを返す。

例)

def dynamic_find
  @person = Person.find_by_name_and_age(takeshi,28)
  render person/show
end

フィルタリング

Railsでは、SQLのWHEREとかORDER BYみたいなことを指定することができる。

例)

@persons = Person.where(:name => yuka).order(age DESC)

where:条件でフィルタリング
order:並び替え

プレースホルダとは、パラメータの置き場所のこと。
プレースホルダを利用することで、条件式に対して実行時に任意のパラメータを引き渡すことができる。
プレースホルダを利用しないで条件式を生成すると、SQLインジェクションと呼ばれる脆弱性の原因となってしまう可能性がある。
たしか、徳丸本でもプレースホルダの使用が推奨されてたはず。

def placeholder
  @persons = Person.where(name = ? AND age >= ?, params[:name], params[:age])
  render person/list
end

?がプレイすホルダで、第二引数にパラメータに入れる値を指定する。
プレイすホルダは記述順に並べることに注意が必要。

Ruby on Rails 3 アプリケーションプログラミング

Ruby on Rails 3 アプリケーションプログラミング

  • 作者: 山田祥寛
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/05/12
  • メディア: 大型本
  • 購入: 27人 クリック: 664回
  • この商品を含むブログ (41件) を見る