Edited at

ActiveRecord DB検索(find,firsrt,last,all)

More than 1 year has passed since last update.


findメソッド SQL文

#Find the client with primary key (id) 10.

client = Client.find(10)
#=> #<Client id: 10, first_name: "Ryan">

SELECT * FROM client WHERE (clients.id = 10) LIMIT 1

ActiveRecord::RecordNotFound

#Find the client with primary keys 1 and 10

client = Client.find([1, 10]) # Client.find(1, 10)でもよい
#=> [#<Client id: 1, first_name: "Lifo">,#<Client id: 10, first_name: "Ryan">]

SELECT * FROM clients WHERE (clients.id IN (1,10))


find('1:主キー値')

def get_find

@article = Article.find(1)
render 'articles/show'
end

SELECT "articles".* FROM "articles" WHERE "articles"."id" = ? LIMIT 1

[["id", 1]]

def get_find2

@articles = Article.find(1,3,5)
render 'get_all'
end

SELECT "articles".* FROM "articles" WHERE "articles"."id" IN (1,3,5)


find_all_by_'xxxx:フィールド名'('MVC入門:検索値')


find_by_'xxxx:フィールド名'('MVC入門:')

@article =Article.find_by_title('member:検索値')

SELECT "articles".* FROM "articles"

WHERE "articles".* "title" = 'MVC入門'

@users = User.find_all_by_roles('membaer')

SELECT "users".* FROM "users" WHERE "users"."roles" = 'member'

#blogテーブルからIDが1のデータを検索し、ロードする

blog = Blog.find(1)
#findメソッドの引数に指定するIDは、数値でも文字列でも構わない
blog = Blog.find("1")

SELECT * FROM blog WHERE id = 1

#IDが1,2,3のレコードをロードする

blog = Blog.find(1,2,3)
#可変長引数ではなく、IDの値を複数含んだ配列オブジェクトを渡しても可
blog = Blog.find([1,2,3])

SELECT * FROM blog WHERE blog.id IN (1,2,3)

#blogテーブルから一番"先頭"のレコードを検索してロードする

blog = Blog.first

#blogテーブルから一番"最後"のレコードを検索してロードする

blog = Blog.last

#blogテーブルから"すべて"のレコードを検索してロードする

blogs = Blog.all

def index

flash[:notice] = "きょうは#{Date.today}"
end

<% if flash[:notice] %>

<div id="flash" style="color": green; border: green solid">
<%=flash[:notice]%>
</div>
<% end %>

def index

flash.now[:notice] = "ようこそ。今日は#{Date.today}です。"
#このメッセージはリクエスト内でのみ有効
end

redirect_to :root, :flash => {:error => "IDまたはパスワードが違います。"}

redirect_to :root, :notice => "ようこそ!!"