hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

Rails Drill 問題8

必要となる知識

limitメソッドを利用すると、取得するレコードの数を制限することができる。制限する数は、limitメソッドの引数で指定する。以下のようにすると、tweetsテーブルから取得してきたレコードのうち5つだけの配列を作成する。

コンソール
1
2
3
4
5
#tweetsテーブルから5件だけレコードを取得する
pry(main)> Tweet.limit(5)
=> [#<Tweet id: 1, image: "http://image.jpg", text: "rails now. it's so fun!!", created_at: "2015-01-12 07:55:38", updated_at: "2015-01-12 07:55:38", user_id: 1>,
 #<Tweet id: 2, image: "http://happy.jpg", text: "oh!!happy day!", created_at: "2015-01-12 07:56:21", updated_at: "2015-01-12 11:52:53", user_id: 1&gt;#&lt;Tweet id: 3, image: "http://image2.jpg", text: "rails rails rails!", created_at: "2015-01-12 07:55:38", updated_at: "2015-01-12 07:55:38", user_id: 1>,
 #<Tweet id: 4, image: "http://happy2.jpg", text: "rails new", created_at: "2015-01-12 07:56:21", updated_at: "2015-01-12 11:52:53", user_id: 1&gt;#&lt;Tweet id: 5, image: "http://image3.jpg", text: "brand new world.", created_at: "2015-01-12 07:55:38", updated_at: "2015-01-12 07:55:38", user_id: 1>]

 tweetsテーブルに保存されているレコードのうち最初の2件のみ取得する。

実行例

コンソール
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
pry(main)> #tweetsテーブルでの最初の2件のみ取得するコマンドを打ってください
  Tweet Load (0.3ms)  SELECT  `tweets`.* FROM `tweets` LIMIT 2
=> [#<Tweet:0x00007fa9a1398d50
  id: 1,
  text: "text",
  image: "url",
  created_at: Thu, 29 Nov 2018 07:47:54 UTC +00:00,
  updated_at: Thu, 29 Nov 2018 07:47:54 UTC +00:00,
  user_id: 1>,
 #<Tweet:0x00007fa9a1398bc0
  id: 2,
  text: "I'm doing rails now. It's so fun!!",
  image: "http:://image.jpg",
  created_at: Fri, 30 Nov 2018 06:09:32 UTC +00:00,
  updated_at: Fri, 30 Nov 2018 06:09:32 UTC +00:00,
  user_id: 1>]

解説

解答例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
pry(main)> Tweet.limit(2)
  Tweet Load (0.3ms)  SELECT  `tweets`.* FROM `tweets` LIMIT 2
=> [#<Tweet:0x00007fa9a1398d50
  id: 1,
  text: "text",
  image: "url",
  created_at: Thu, 29 Nov 2018 07:47:54 UTC +00:00,
  updated_at: Thu, 29 Nov 2018 07:47:54 UTC +00:00,
  user_id: 1>,
 #<Tweet:0x00007fa9a1398bc0
  id: 2,
  text: "I'm doing rails now. It's so fun!!",
  image: "http:://image.jpg",
  created_at: Fri, 30 Nov 2018 06:09:32 UTC +00:00,
  updated_at: Fri, 30 Nov 2018 06:09:32 UTC +00:00,
  user_id: 1>]

解説

limitメソッドはモデル名.limit(取得したい件数)というように使うと、
初めのレコードから取得したい件数分テーブルから取得出来る。