Ruby on Rails Pro

Hidari 前のページ Migi 次のページ  Ue カテゴリへ戻る 

Modelクラスを使ってテーブルのデータを条件付きで参照したい(find)

更新日 2009/06/03 作成日 2008/07/24


ソートをしたり、カラムの値がある数字以上のデータを抜き出したいなど、データの参照には条件をつけて参照することが通常です。ここではさまざまな条件のつけ方を前回のgiftsテーブルを使いながら紹介します。

指定したカラムの値を指定して参照する (where)

/app/controllers/hello_controller.rb -メモ張
class HelloController < ApplicationController
	・
	・
  def find
	@gifts=Gift.find(:all,:conditions=>:conditions => [ "name = ? ", 'ぶどう'])
  end
	・
	・
end

nameカラムが「ぶどう」のデータを参照します。結果idが2のデータが@giftsに格納されます。

最初のデータから3つだけ参照する (limit)

/app/controllers/hello_controller.rb -メモ張
class HelloController < ApplicationController
	・
	・
  def find
	@gifts=Gift.find(:all,:limit=>3)
  end
	・
	・
end

最初のデータから3つだけ参照された結果idが1,2,3のデータが@giftに格納されます。

最初から2番目のデータから2つだけ参照する (limit,offset)

/app/controllers/hello_controller.rb -メモ張
class HelloController < ApplicationController
	・
	・
  def find
	@gifts=Gift.find(:all,:offset=>1,:limit=>2)
  end
	・
	・
end

最初から2つ目のデータを2つだけ参照された結果idが2,3のデータが@giftに格納されます。

指定したカラム名の値でソートして参照する (order by (desc))

/app/controllers/hello_controller.rb -メモ張
class HelloController < ApplicationController
	・
	・
  def find
	@gifts=Gift.find(:all,:order=>'price')
  end
	・
	・
end

priceの値でソートし参照された結果idの数が1→4→3→2の順でデータが@giftに格納されます。また、'price'ではなく、'price desc'とすると逆ソートした結果が格納されます。

このエントリーを含むはてなブックマーク はてなブックマーク このエントリーを含むYahoo!ブックマーク  このエントリーを含むlivedoorブックマーク  このエントリーを含むbuzzurlブックマーク  Hidari 前のページ Migi 次のページ  Ue カテゴリへ戻る  Home トップに戻る

おすすめのレッスン

RailsでFunctionalsで基本的なTestの仕方2
<%= p "それではサンプルアプリケーションをテストしていきます。今回は以下のようなテストを行ってみます。" %>/hoge/act1へリクエストするとレスポンス200かつact1.html.erbテンプレートを選択する/hoge/act1のTex...
2009/11/22 22:08



2009/11/22 22:24

わからないところはみんなに聞いてみよう

Ruby on Rails Pro BBS
理解できないで悩むよりみんなに聞い て助けてもらおう! また、みんなが困っていたら助けてあげよう!

rakeが動かない
ページの説明通りにインストールしたのですが rake db::create rake db::migrate でともに rake aborted! Don't know how to build task 'db::migrate' C:/Ruby/lib/ruby/g..
2009/11/18 15:37
Ruby on Rails 入門 Model モデル Control コントロール View ビュー Rmagick 画像編集 Ajax 動的ページ Paginate ページ分割 Test テスト Linux サーバ構築 Apacheサーバ Passenger(mod_rails) Railsアプリ公開 linux windows サーバ構築 Railsアプリ公開 windows ActionMailerでメール送信
© 2008-2009 maskana