一覧表示する場合は、下のようにすれば良いだけですが、シンプルすぎて複雑なものはできません。
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