一覧表示する場合は、下のようにすれば良いだけですが、シンプルすぎて複雑なものはできません。
def index
@samples = Sample.all
end
より、複雑なことをするためには、クエリメソッドを使います。
よく使うやつ
| メソッド | 概要 |
|---|---|
| where | 条件でフィルタリング |
| not | 否定の条件式を表す |
| order | 並び替え |
| reorder | ソート式を上書き |
| select | 列の指定 |
| distinct | 重複のないレコードを取得 |
| limit | 抽出するレコードを指定 |
| offset | 抽出を開始する数を指定。limitと一緒に使う |
| group | 特定のキーで結果をグループ化 |
| having | GROUP BYにさらに制約をつける |
| joins | 他のモデルと結合 |
| includes | 関連するモデルをまとめて取得 |
| readonly | 取得したオブジェクトを読み取り専用に |
| none | 空の結果セットを取得 |
def index
@samples = Sample.all
end
単純にallだけでは、自分だけではなくて、他のユーザーのものも表示されるので、whereメソッドを使って自分のだけを表示されるようにします。下の例は、sampleを作ったuserと現在のユーザーが同一のものだけをフィルタリングするという意味です。
def index
@samples = Sample.where(user_id: current_user.id)
end