Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Advertisement
Upcoming SlideShare
Haskellday rf
Loading in ... 3
1
of
8
Top clipped slide
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Apr. 22, 2012
•
0 likes
0 likes
×
Be the first to like this
Show More
•
6,852 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Education
Kosuke Tanabe
Follow
Engineer at National Institute for Materials Science
Advertisement
Advertisement
Advertisement
Recommended
Haskellday rf
rf0444
1.5K views
•
27 slides
大ざっぱにオブジェクト指向
azuma satoshi
1.1K views
•
12 slides
Web API デザインの鉄則 第2章
Taichi Watanabe
1.1K views
•
12 slides
Ruby 同好会宣言
Yuya Takeyama
753 views
•
63 slides
5分程度で分かる? Appceleratorの方のAlloy
Masato Kitao
3.9K views
•
31 slides
ページャ実装マニアックス
Yohei Fushii
5.1K views
•
26 slides
More Related Content
Viewers also liked
(20)
Next-L Enju 開発ワークショップ #45
Kosuke Tanabe
•
676 views
Next-L Enju 開発ワークショップ #34
Kosuke Tanabe
•
782 views
Next-L Enjuのこれまでとこれから(2013年版)
Kosuke Tanabe
•
1.8K views
Next-L Enju 開発ワークショップ #10
Kosuke Tanabe
•
852 views
Next-L Enju 開発ワークショップ #44
Kosuke Tanabe
•
767 views
Next-L Enju 開発ワークショップ #8
Kosuke Tanabe
•
873 views
Next-L Enju Leaf 1.1.0 リリースに向けて
Kosuke Tanabe
•
507 views
Next-L Enju 開発ワークショップ #35
Kosuke Tanabe
•
898 views
Next-L Enju 開発ワークショップ #5
Kosuke Tanabe
•
1.3K views
What the F**k is Social Media NOW?
The Espresso Group
•
11.8K views
FY2014 and 2015-2019 Strategic Plan (26 marzo 2015)
Terna SpA
•
9.3K views
Ownership Patterns of Single Family Homes Sales on the West Side Neighborhood...
ayan604
•
75.1K views
Designing buildings on the computer
Evan Designs
•
4.7K views
B2B E-Commerce Trends: 10 Hypothesen für ein erfolgreiches Multichannel Mark...
Aioma AG
•
2K views
9M 2016 Consolidated Results (November 4, 2016)
Terna SpA
•
207K views
Starbucks Competitors: The Big Three
Inevitable Steps
•
71.8K views
3 Steps To Make Your Lifecycle Emails Soar
Chris Hexton
•
424.3K views
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
Preferred Networks
•
15.8K views
Debunking the myths of organizational change management
accenture
•
191.1K views
designing innovation, insitutions for social transformation D1s3 gupta anil i...
Dr Anil Gupta
•
70.5K views
Similar to Next-L Enju 開発WS #03 Ruby on Railsの使い方
(20)
WebAppDev勉強会 #3 at cafe? IKAGAWA DO
Kohei Noda
•
288 views
Teclab3
Eikichi Yamaguchi
•
1.4K views
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
•
2.8K views
Webで役立つRDBの使い方
Soudai Sone
•
7.6K views
Mongodb
Satoru Mikami
•
3.1K views
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
Kohei Noda
•
343 views
シラサギハンズオン 東京
Yu Ito
•
2.9K views
月間10億pvを支えるmongo db
Yuji Isobe
•
20.6K views
Rails3.1rc4を試してみた
Takahiro Hidaka
•
528 views
C# Database操作3 データの更新-
Hiroki Takahashi
•
1.1K views
WindowsでMySQL入門
Hidenori Ishii
•
12.7K views
シラサギハンズオン 大阪
Yu Ito
•
2.7K views
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Akabane Hiroyuki
•
4.1K views
AWS Black Belt Online Seminar AWS 体験ハンズオン 〜 Amazon DynamoDB テーブル作成編 〜
Amazon Web Services Japan
•
9.6K views
PhpでMySqlを使う
pcod
•
42.2K views
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
•
1.3K views
シラサギハンズオン 1015 1016
Yu Ito
•
3.2K views
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
•
5.5K views
My sql casual_in_fukuoka_vol1
Makoto Haruyama
•
2.9K views
C# Database操作2 データの取得-
Hiroki Takahashi
•
1.2K views
Advertisement
More from Kosuke Tanabe
(20)
Next-L Enju ワークショップ #91
Kosuke Tanabe
•
201 views
Next-L Enju ワークショップ #90
Kosuke Tanabe
•
246 views
Next-L Enju ワークショップ #89
Kosuke Tanabe
•
172 views
Next-L Enju ワークショップ #88
Kosuke Tanabe
•
237 views
Next-L Enju ワークショップ #86
Kosuke Tanabe
•
181 views
Next-L Enju ワークショップ #78
Kosuke Tanabe
•
211 views
オープンソースの図書館システムNext-L Enjuのいまとこれから
Kosuke Tanabe
•
1.2K views
Next-L Enju ワークショップ #75
Kosuke Tanabe
•
261 views
Next-L Enju ワークショップ #76
Kosuke Tanabe
•
184 views
Next-L Enju ワークショップ #74
Kosuke Tanabe
•
254 views
nextlenju73
Kosuke Tanabe
•
213 views
Next-L Enjuのご紹介(2018年版)
Kosuke Tanabe
•
178 views
Next-L Enju ワークショップ #65
Kosuke Tanabe
•
214 views
enju_ws_65
Kosuke Tanabe
•
161 views
Next-L Enju ワークショップ #64
Kosuke Tanabe
•
186 views
Next-L Enju ワークショップ #62
Kosuke Tanabe
•
241 views
Next-L Enju ワークショップ #62
Kosuke Tanabe
•
211 views
Next-L Enju LRM
Kosuke Tanabe
•
545 views
Enju ws 60
Kosuke Tanabe
•
311 views
Next-L Enju 開発ワークショップ #59
Kosuke Tanabe
•
260 views
Recently uploaded
(20)
☀️《U of U毕业证仿真》
hjhgg
•
2 views
v
nhhh4
•
2 views
☀️《CWRU毕业证仿真》
DFFFFG
•
2 views
劳伦森大学原版成绩单修改gpa学分加拿大留学文凭办理
JhhhfGffh
•
3 views
办Humber/汉博学院毕业证成绩单QQ微信:8194343办Humber假文凭,办Humber毕业证书,办Humber硕士学位证,办汉博学院文凭认证/学...
BonnieLaymon
•
4 views
61高贵林学院.pdf
fdhrtf
•
2 views
Sample.pptx
ssuser5cce1e
•
3 views
☀️《UMaine毕业证仿真》
DFFFFG
•
2 views
JDLA_GAI Test2023.pptx
JDLAPR
•
583 views
☀️《梅西大学毕业证仿真》
hjhgg1
•
2 views
COMPRENSION ORAL .pptx
EneydaGuzmn1
•
0 views
☀️《DePaul毕业证仿真》
DFFFFG
•
2 views
购买学校原版学位证#劳瑞尔大学毕业证
JhhhfGffh
•
3 views
90加州尔湾分校.pdf
dsadasd17
•
2 views
54伯克利学院.pdf
fdhrtf
•
2 views
マイクロゲルビーズによる赤血球再現および分散液の流動特性評価.ppt.pptx
ssuser60477f
•
5 views
69亚岗昆学院.pdf
fdhrtf
•
2 views
APRESTAMIENTO K.doc
NERY2013
•
5 views
52魁北克大学.pdf
dsadasd17
•
4 views
40霍华德大学.pdf
dsadasd17
•
2 views
Advertisement
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Ruby on Railsの基本的な使い方
田辺浩介 1. はじめに Ruby on RailsはWebアプリケーションを手軽に作成するためのフ レームワークです。 Next-L EnjuはRailsの規則に従って作成されて いるため、Railsのサンプルアプリケーションを 作成することに よって、Enjuのおおまかな構成を把握することができます。 2. サンプルアプリケーションを作る 掲示板アプリケーションを作ってみましょう。以下のコマンドで新 しいアプリケーショ ンを作ります。 $ cd $ rails new bbs アプリケーションのディレクトリに移動します。 $ cd bbs 掲示板は以下の項目を持つとします。 項目名 データ型 username(投稿者名) string(255文字までの文字列) email(メールアドレス) string(255文字までの文字列) body(本文) text(255文字以上の文字列) score(評価) integer(整数)
3. アプリケーションのひな形の作成 以下のコマンドを実行します。ここでは掲示板のデータモデルの名 前をPostとします。 $
rails generate scaffold Post username:string email:string body:text score:integer 以下のディレクトリとファイルが作成されます(主要なものだけを 表示)。 Gemfile app/controllers/posts_controller.rb app/models/post.rb app/views/posts/index.html.erb app/views/posts/show.html.erb app/views/posts/new.html.erb app/views/posts/edit.html.erb app/views/posts/_form.html.erb db/migrates/20101016171302_create_posts.rb (数字の部分 は環境によって変化) public/stylesheets/scaffold.css ページ送り処理のためのライブラリを読み込むように指示します。 Gemfileに以下の行 を追加した後、 gem 'will_paginate' 以下のコマンドを実行して、ライブラリを用意します。 $ bundle update
5.データベースの作成 データベースを作成します。postsテーブルが同時に作成されます (テーブル名はデータ モデル名を複数形にしたものになります。項 目3では Post
としているので、テーブル名 は posts になりま す)。 $ rake db:migrate 6. サーバを起動します。 $ rails server 7. Webブラウザで http://localhost:3000/posts にアクセスしま す。いくつかデータを入力し てみましょう。 Ruby on Railsで作成されたアプリケーションは、大きく分けてモ デル・コントローラ・ ビューの3つで構成されます。この構成を 「MVC」(Model-View-Controller)と呼びます が、それぞれの役 割を次項で説明します。
モデル(データの操作) モデルはデータの操作(取得・作成・更新・削除)を担当します。こ こでは実際にPostモ デルを操作してみましょう。 Webブラウザでもデータの操作は行えますが、今回は詳細を確か めるために、コンソール を使って操作を行います。コンソールは 以下のコマンドで起動します。 $
rails console コンソールはirbと同じ操作ができるようになっており、Rubyと Railsで使われる命令を直 接実行することができます。 データの追加 createメソッドを使用してデータを作成します。 > post = Post.create(:username => tanabe , :body => こんに ちは ) または、newメソッドとsaveメソッドを使用することもできます。 > post = Post.new(:username => tanabe , :body => こんにち は) > post.save 正しくデータが作成されると、idが自動的に付与されます。 => #<Post id: 1, username: "tanabe", email: nil, body: "こんに ちは", score: nil, created_at: "2010-10-16 20:24:23", updated_at: "2010-10-16 20:24:23"> この場合、idに1が振られています。
データの取得 保存したデータをすべて取得するには、allメソッドを使用します。 > posts =
Post.all allメソッドではデータの配列が返ってきますので、これをeachな どを使用して取り出します。 > posts.each do ¦post¦ puts post.username end Webアプリケーションの場合、画面1ページごとに表示件数を限定 してデータを取得する 必要があります。たとえば、1ページあたり 5件取得することとし、その2ページ目のデー タを取得するには、 以下のようにpaginateメソッドを使用します。 > posts = Post.paginate(:page => 2, :per_page => 5) 保存したデータを1件だけ取得するには、findメソッドを使用しま す。以下のようにidを指定して取り出します。 > post = Post.find(1) > post.username # usernameだけを取り出す > post.body # bodyだけを取り出す 条件を指定してデータを取得するには、where を使用します。 # usernameがtanabeとなっているデータをすべて取得。配列が 返ってくる > posts = Post.where(:username => tanabe ) # usernameがtanabeとなっているデータを最初の1件だけ取得 > post = Post.where(:username => tanabe ).first
データの更新 update_attributesメソッドを使用します。 > post.update_attributes({:username =>
kosuke , :email => tanabe@example.jp }) 以下のように、saveメソッドを使用することもできます。 > post.username = kosuke > post.email = tanabe@example.jp > post.save データの削除 destroyメソッドを使用します。 > post.destroy
ここまでのActiveRecordの使い方をまとめてみます。
動作 書き方 データ全件を取得 posts = Post.all する 1ページ目のデー posts = Post.paginate(:page => 1) タをすべて取得す る idが15のデータを post = Post.find(15) 取得する username posts = Post.where(:username => ʻtanabeʼ) が tanabe のデー タをすべて 取得す る username post = Post.where(:username => ʻtanabeʼ).first が tanabe のデー タを1件だ け取得 する データを作成する post = Post.create(:username => (1) ʻtanabeʼ, :body => ʻこんにちはʼ) データを作成する post = Post.new(:username => ʻtanabeʼ, :body (2) => ʻこんにちはʼ) post.save データを更新する post = Post.find(15) (1) post.update_attributes({:username => ʻkosukeʼ}) データを更新する post = Post.find(15) (2) post.username = ʻkosukeʼ post.save データを削除する post = Post.find(15) post.destroy
コントローラ(処理の振り分け) Railsで作成したアプリケーションには、一覧表示(index)・詳細表 示(show)・新規作成 (new)・編集(edit)の機能があらかじめ用意さ れています。コントローラは、Webブラウザ などから送られてき たリクエストをもとに、処理を振り分ける役割を行います。 params URL内のパラメータやフォームに入力されたデータは、paramsと いう変数に入ります。
たとえば、http://localhost:3000/posts? query=tulips&page=3 というURLにアクセスがある と、 params[:query] に tulips が、params[:page] に 3 が保存されま す。具体的な使用方法 は講義内で説明します。 ビュー(画面表示) モデルとコントローラによって送られてきたデータをもとに、画面 の表示を担当する部分 です。Ruby on Railsでは、HTMLの中に Rubyのプログラムを埋め込む形式( <%= %> の部分にRubyを書 きます)がデフォルトとして使われています。 コントローラで使用 したインスタンス変数は、ビューの中で使用することができます。 く わしくはソースコードを参照してください。 ポイント • 変数名は配列が入る場合は複数形、データ1件が入る場合は単数 形でつけるとわかりや すいです。既定で作られるコントローラは そのように作成してあります。 posts = Post.all # 複数件のpostが返ってくる post = Post.find(15) # 1件のpostが返ってくる
Advertisement