Last active
August 23, 2018 22:32
-
-
Save srockstyle/79ac9a7ae9e7a61d206a2c0fc129b347 to your computer and use it in GitHub Desktop.
[WIP] ActiveRecordの使い方リスト:その1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##------------------------- | |
# where | |
##------------------------- | |
## 基本 | |
@artsts = Artist.where(genre: 'Rock') | |
## 配列で指定もできます。この場合は探したい文字列のところに「?」を入れて、次の配列にでていた順番に探したい文字列を順番にいれていけば大丈夫です。 | |
@artsts = Artist.where("name = ? and genre = ?","Oasis","Rock") | |
# 値がnullをすべて取得とかできます。 | |
@artsts = Artist.where("name = ?",null) | |
# 値がnullじゃないのををすべて取得とかできます。 | |
@artsts = Artist.where("name != ?",null) | |
##------------------------- | |
# find | |
##------------------------- | |
# findさんはハッシュで値を返してくれます。 | |
# IDで検索。これでアーティスト情報がハッシュで返ります。 | |
@artsts = Artist.find(1) | |
# 複数項目を検索(where的な) | |
@artsts = Artist.find([1,2]) | |
# とにかく全部とってきたい欲張りさんはallを渡せばいいです。 | |
@artsts = Artist.find(:all) | |
# find_byでnameカラムがOasisのデータを引っ張ってきます。 | |
@artsts = Artist.find_by(name: "Oasis") | |
# テーブルの最初のヤツだけとりたい場合 | |
@artsts = Artist.find(:first) | |
# 最後のをとりたい場合 | |
@artsts = Artist.find(:last) | |
##------------------------- | |
# order | |
##------------------------- | |
# orderは並び替えです。ID順とかアルファベット順とか。 | |
# カラムを指定して並び替え。 | |
@artsts = Artist.where(:genre => "Rock").order("ord") | |
以下はordという並び順が入ったカラムを指定して並び替え。 | |
# 昇順はASC。orderのかっこの中に並び替えたいカラムにスペースをあけてから書いてあげます。 | |
<pre>@artsts = Artist.where(genre: "Rock").order("ord ASC") | |
# 降順はDESC。ASCと同じです。 | |
@artsts = Artist.where(genre: "Rock").order("ord DESC") | |
# reverse_orderなんてメソッドもあります。これは現在の並び順を逆順にします。普通にDESC使えばいいんじゃないかって気もするけど。 | |
@artsts = Artist.order("ord").reverse_order | |
##------------------------- | |
# select | |
##------------------------- | |
# selectは取得カラムを指定します。カラムが多すぎると取得するときに負荷がかかるので取得カラムの制限は必要です。 | |
# selectのメソッドの後にコンマ区切りで取得したいカラムを並べます。 | |
@artsts = Artist.where(genre: "Rock").select("name,genre") | |
##------------------------- | |
# limit | |
##------------------------- | |
# 取得数を制限します。数値指定してあげるだけです。 | |
@artsts = Artist.where(genre: "Rock").limit(6) | |
##------------------------- | |
# take | |
##------------------------- | |
これはRails4から増えたメソッドです。指定した件数とってくるやつです。これlimitでいいんじゃないかな…… | |
@artsts = Artist.where(genre: "Rock").take(6) | |
##------------------------- | |
# offset | |
##------------------------- | |
# テーブルの指定位置から取得します。これは指定した場所からもってきてくれます。以下だったら6以降。 | |
@artsts = Artist.where(genre: "Rock").offset(6) | |
##------------------------- | |
# none | |
##------------------------- | |
# 空のモデルを持ってきてくれるんだけどなにに使うんだこれ…… | |
@artsts = Artist.none | |
##------------------------- | |
# readonly | |
##------------------------- | |
# 読み込み専用で読み込んじゃいます。 | |
@artsts = Artist.readonly | |
##------------------------- | |
# uniq | |
##------------------------- | |
# 重複データを消してくれます。 | |
@artsts = Artist.uniq | |
##------------------------- | |
# having | |
##------------------------- | |
# とってきた中から条件で絞り込みます。whereのとってきたデータを絞り込む感じです。 | |
@artsts = Albam.having(release_year = 1989) | |
##------------------------- | |
# join | |
##------------------------- | |
# Joinしたいところ。引数に別テーブルを指定してください。 | |
@artsts = Artist.join(:albam) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment