読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

データ取得のメソッドのメモ(1)

<スポンサーリンク>

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 アプリケーションプログラミング