SlideShare a Scribd company logo
1 of 19
Rails講座第一回目 東京情報大学 河野義広 2011/06/08
Rails講座の概要 目的 Ruby on Rails(Rails)の知識を得る Webアプリケーションの開発に活かす Webアプリ開発の最新動向を知る 進め方 解説に加え、適宜演習を交える 内容 第一回目:Railsの概要とRailsアプリの作成 第二回目:開発環境と実装、デバッグのポイント 第三回目:RailsアプリのApache連携とSSL対応 第四回目:Twitter APIを利用した連携アプリの開発 第五回目:Railsでのサーバ間通信~RESTfulな開発~
第一回目の概要 Railsの概要 Ruby on Railsとは MVCアーキテクチャ 利用するRails環境 Railsアプリの作成(演習) Railsプロジェクトの作成とディレクトリ構成 マイグレーションによるDB作成 コントローラとビューの作成 Railsアプリの実行 Rails開発のメリット アジャイル開発 プロジェクト管理
Ruby on Railsとは 特徴 Webアプリケーション開発の「フレームワーク」 オブジェクト指向スクリプト言語「Ruby」で記述 MVC(Model-View-Controller)アーキテクチャ モデル、ビュー、コントローラでの役割分担 RubyとRails Ruby:プログラム言語 Rails:Rubyで記述されたフレームワーク フレームワーク:ツール、ライブラリ、設定ファイル等 Ruby on Rails Ruby 図1. RubyとRailsの関係
MVCアーキテクチャ MVCアーキテクチャ モデル:DBとの連携(ActiveRecordの利用) ビュー:画面表示 コントローラ:ユーザからのデータ入力 コントローラ モデル DB 端末 ビュー ユーザ 図2. MVCアーキテクチャの概要
Railsの設計哲学 DRY(Don’t Repeat Yourself、繰り返しを避けよ) 同じコードの繰り返しを避け、効率・品質の向上を目指す 設定より規約(Convention over Configuration) あらかじめ用意された規約に従うことで設定を不要にする 例:モデルの命名規則 テーブル名:members(複数形にする) モデルのクラス名:Member(単数形となる) クラスを記述するファイル名:member.rb
Railsの主な特徴 ルーティング 「&」や「=」のないきれいなURLが使える 例:http://localhost:3000/members/show/1 マイグレーション DBのテーブルを定義するための機能 DBの種類に依存しない(SQL文は書かない) 対応DB:MySQL, PostgreSQL, SQLite, SQL Server, Oracle モデルの操作 モデルの操作がDBの操作に対応(取り出し、保存、削除) 値の取り出し:@member.birthday 条件指定での検索:@member = Member.find_by_name(‘satou’) コントローラ  アクションパラメータ
Rails環境 必須環境 Ruby 1.8.5 Rails 2.10 RubyGems 1.3.1 Apache 2.2 MySQL 5.0 注意事項 Ruby 1.8.5は少し古いバージョン yumでは1.8.5が最新だが、1.8系は1.8.7まである 1.8系と1.9系は言語仕様がだいぶ違う
今回作るRailsアプリ 今回の目標 DBと連動したWebアプリケーション
Railsアプリの作成(1) 1. プロジェクトを作ってみよう # rails プロジェクト名 –d mysql ※-dオプションはDBの指定(今回はmysql) ディレクトリの内容を確認 app:アプリ、config:設定ファイル、db:DB定義 public:コンテンツ置き場、script:サーバ、ジェネレータ 2. マイグレーションでDBを作る # cd rails_test # ruby script/generate migration person
Railsアプリの作成(2) 3. マイグレーションファイルを編集する # vi db/migrate/***.rb class Person < ActiveRecord::Migration defself.up create_table :people do |t| t.string :name t.integer :age t.timestamps     end   end defself.down drop_table :people   end end
Railsアプリの作成(3) 4. DBを作成する # vi config/database.yml  ※DBの設定を確認する。必要ならスキーマ名を変更する。 rakeコマンド:DB操作(作成、削除、マイグレーション) # rake db:create # rake db:migrate 5. DBの内容を確認する # mysql –u root mysql> show databases; mysql> use project1_development; mysql> show talbes;
Railsアプリの作成(4) 6. コントローラとビューを作る #ruby script/generate controller people  ※controllerの指定でコントローラとビューが作成される 7. モデルを作る # ruby script/generate model --no-migration  ※オプションでマイグレーションしないを指定
Railsアプリの作成(5) 8. コントローラを編集する # vi app/controllers/people_controller.rb DBの登録内容を表示するメソッドを作成 class PeopleController < ApplicationController def index     @people = Person.find(:all) respond_to do |format|       format.html # index.html.erb       format.xml  { render :xml => @people }     end   end end
Railsアプリの作成(6) 9. ビューを編集する # vi app/views/people/index.html.erb コントローラのindexメソッドに対応する画面表示 <h1>Listing people</h1> <table>   <tr>     <th>Name</th>     <th>Age</th>   </tr> <% for person in @people %>   <tr>     <td><%=h person.name %></td>     <td><%=h person.age %></td>   </tr> <% end %> </table>
Railsアプリの作成(7) 10. サーバを起動する # ruby script/server 以下のURLにアクセスして動作を確認 http://157.80.83.208:3000/ http://157.80.83.208:3000/people/
Railsアプリの作成(8) これまでの手順はscaffoldで簡単にできる #ruby script/generate scaffold person name:stringage:integer # rake db:create # rake db:migrate サーバを起動する # ruby script/server
Rails開発のメリット アジャイル開発 迅速かつ適応的なソフトウェア開発 簡単にプロトタイプ開発を行い、適宜修正しながら進める プロジェクト管理 プロジェクトのディレクトリにすべてが入っている プログラム、設定ファイル、ログ、DB定義、サーバ機能 ディレクトリをSubversionで管理するだけでよい DB管理が容易 スキーマのバージョン管理 RakeコマンドによるDBのバージョンアップ/ロールバック 他のDBへの切り替えが容易
次回予告 内容 開発環境と実装、デバッグのポイント

More Related Content

Viewers also liked

Resolução nº 025 conselho municipal de saude de natal
Resolução nº 025 conselho municipal de saude de natalResolução nº 025 conselho municipal de saude de natal
Resolução nº 025 conselho municipal de saude de natalCarlos França
 
Diálogo verbos introdutores
Diálogo verbos introdutoresDiálogo verbos introdutores
Diálogo verbos introdutoresabrigada
 
Los sectores economicos
Los sectores economicosLos sectores economicos
Los sectores economicosquangeius
 
Virus y vacunas informáticas
Virus y vacunas informáticasVirus y vacunas informáticas
Virus y vacunas informáticassirleygallo
 
Final paradigmas educación
Final paradigmas educaciónFinal paradigmas educación
Final paradigmas educaciónJuan Poblete
 
Manual word 2007
Manual word 2007Manual word 2007
Manual word 2007Jonymerino
 
Presentacion de la_publicidad
Presentacion de la_publicidadPresentacion de la_publicidad
Presentacion de la_publicidadlionelwiwi99
 
Perfeccion matematica y_el_amor_de_dios
Perfeccion matematica y_el_amor_de_diosPerfeccion matematica y_el_amor_de_dios
Perfeccion matematica y_el_amor_de_diossaludcondesdearagon
 
Resolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educaçãoResolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educaçãoCarlos França
 
Resolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educaçãoResolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educaçãoCarlos França
 
Trabajo informatica.
Trabajo informatica.Trabajo informatica.
Trabajo informatica.Maaaaada
 
Educación infantil
Educación infantilEducación infantil
Educación infantilvbg86
 
Mercado de Trabalho em João Pessoa
Mercado de Trabalho em João PessoaMercado de Trabalho em João Pessoa
Mercado de Trabalho em João PessoaConstruir Sites
 
Presentacion1 parcial 3[1]
Presentacion1 parcial 3[1]Presentacion1 parcial 3[1]
Presentacion1 parcial 3[1]luisanger
 

Viewers also liked (20)

Resolução nº 025 conselho municipal de saude de natal
Resolução nº 025 conselho municipal de saude de natalResolução nº 025 conselho municipal de saude de natal
Resolução nº 025 conselho municipal de saude de natal
 
Slides quermesse
Slides quermesseSlides quermesse
Slides quermesse
 
Diálogo verbos introdutores
Diálogo verbos introdutoresDiálogo verbos introdutores
Diálogo verbos introdutores
 
Los sectores economicos
Los sectores economicosLos sectores economicos
Los sectores economicos
 
Se és Rapaz !!
Se és Rapaz !!Se és Rapaz !!
Se és Rapaz !!
 
cristianismo
cristianismocristianismo
cristianismo
 
Virus y vacunas informáticas
Virus y vacunas informáticasVirus y vacunas informáticas
Virus y vacunas informáticas
 
Final paradigmas educación
Final paradigmas educaciónFinal paradigmas educación
Final paradigmas educación
 
Promoção de vendas grupo 3 g3 na
Promoção de vendas grupo 3 g3 naPromoção de vendas grupo 3 g3 na
Promoção de vendas grupo 3 g3 na
 
Manual word 2007
Manual word 2007Manual word 2007
Manual word 2007
 
Evidencia048.1
Evidencia048.1Evidencia048.1
Evidencia048.1
 
Presentacion de la_publicidad
Presentacion de la_publicidadPresentacion de la_publicidad
Presentacion de la_publicidad
 
Perfeccion matematica y_el_amor_de_dios
Perfeccion matematica y_el_amor_de_diosPerfeccion matematica y_el_amor_de_dios
Perfeccion matematica y_el_amor_de_dios
 
Resolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educaçãoResolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educação
 
Resolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educaçãoResolução nº 44 utilização recursos educação
Resolução nº 44 utilização recursos educação
 
Trabajo informatica.
Trabajo informatica.Trabajo informatica.
Trabajo informatica.
 
Educación infantil
Educación infantilEducación infantil
Educación infantil
 
Mercado de Trabalho em João Pessoa
Mercado de Trabalho em João PessoaMercado de Trabalho em João Pessoa
Mercado de Trabalho em João Pessoa
 
Presentacion1 parcial 3[1]
Presentacion1 parcial 3[1]Presentacion1 parcial 3[1]
Presentacion1 parcial 3[1]
 
el abismo
el abismoel abismo
el abismo
 

Similar to Rails講座1

2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクションTakahiro Okumura
 
オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802義広 河野
 
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)Sosuke Kimura
 
Rubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーションRubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーションNaoto Hori
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Takuya Mukohira
 
突貫Ruby on rails
突貫Ruby on rails突貫Ruby on rails
突貫Ruby on railsIkko OTA
 
RESTからGraphQL APIへの移行で学んだこと.pptx
RESTからGraphQL APIへの移行で学んだこと.pptxRESTからGraphQL APIへの移行で学んだこと.pptx
RESTからGraphQL APIへの移行で学んだこと.pptxYuya55
 
Reactで作るDrupalサイト
Reactで作るDrupalサイトReactで作るDrupalサイト
Reactで作るDrupalサイトShunsuke Watanabe
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座DIVE INTO CODE Corp.
 
2016 02-25-crawler-study-01
2016 02-25-crawler-study-012016 02-25-crawler-study-01
2016 02-25-crawler-study-01Hiroshi Oyamada
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsKoichiro Ohba
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてHirata Tomoko
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれからYohei Yamamoto
 
RESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうRESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうToru Kawamura
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with RubyHiroshi SHIBATA
 
2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料shogo yamada
 
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービューAkira Inoue
 

Similar to Rails講座1 (20)

2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
 
オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802
 
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
 
Rubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーションRubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーション
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 
突貫Ruby on rails
突貫Ruby on rails突貫Ruby on rails
突貫Ruby on rails
 
RESTからGraphQL APIへの移行で学んだこと.pptx
RESTからGraphQL APIへの移行で学んだこと.pptxRESTからGraphQL APIへの移行で学んだこと.pptx
RESTからGraphQL APIへの移行で学んだこと.pptx
 
Reactで作るDrupalサイト
Reactで作るDrupalサイトReactで作るDrupalサイト
Reactで作るDrupalサイト
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
 
2016 02-25-crawler-study-01
2016 02-25-crawler-study-012016 02-25-crawler-study-01
2016 02-25-crawler-study-01
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
 
RESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうRESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼう
 
Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
 
2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料2017年3月13日勉強会発表資料
2017年3月13日勉強会発表資料
 
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
 

More from 義広 河野

河野ゼミ説明会20221116
河野ゼミ説明会20221116河野ゼミ説明会20221116
河野ゼミ説明会20221116義広 河野
 
河野ゼミ研究紹介20221019
河野ゼミ研究紹介20221019河野ゼミ研究紹介20221019
河野ゼミ研究紹介20221019義広 河野
 
河野ゼミ研究紹介20211020
河野ゼミ研究紹介20211020河野ゼミ研究紹介20211020
河野ゼミ研究紹介20211020義広 河野
 
河野ゼミ紹介20201118
河野ゼミ紹介20201118河野ゼミ紹介20201118
河野ゼミ紹介20201118義広 河野
 
オンライン文化学術展2020「河野ゼミ研究紹介」
オンライン文化学術展2020「河野ゼミ研究紹介」オンライン文化学術展2020「河野ゼミ研究紹介」
オンライン文化学術展2020「河野ゼミ研究紹介」義広 河野
 
専門演習_河野ゼミ説明会20191120
専門演習_河野ゼミ説明会20191120専門演習_河野ゼミ説明会20191120
専門演習_河野ゼミ説明会20191120義広 河野
 
専門演習_河野ゼミ紹介20191023
専門演習_河野ゼミ紹介20191023専門演習_河野ゼミ紹介20191023
専門演習_河野ゼミ紹介20191023義広 河野
 
コミュニティカレッジさくら20190825
コミュニティカレッジさくら20190825コミュニティカレッジさくら20190825
コミュニティカレッジさくら20190825義広 河野
 
高大連携授業20190730
高大連携授業20190730高大連携授業20190730
高大連携授業20190730義広 河野
 
高大連携授業20190730(抜粋)
高大連携授業20190730(抜粋)高大連携授業20190730(抜粋)
高大連携授業20190730(抜粋)義広 河野
 
千葉市若葉区共催市民公開講座_20190711
千葉市若葉区共催市民公開講座_20190711千葉市若葉区共催市民公開講座_20190711
千葉市若葉区共催市民公開講座_20190711義広 河野
 
プレゼンの作り方2019
プレゼンの作り方2019プレゼンの作り方2019
プレゼンの作り方2019義広 河野
 
プレゼン勉強会_若葉区公開講座_20190620
プレゼン勉強会_若葉区公開講座_20190620プレゼン勉強会_若葉区公開講座_20190620
プレゼン勉強会_若葉区公開講座_20190620義広 河野
 
専門演習説明会『河野ゼミの紹介2019』
専門演習説明会『河野ゼミの紹介2019』専門演習説明会『河野ゼミの紹介2019』
専門演習説明会『河野ゼミの紹介2019』義広 河野
 
ソーシャルメディアを活用した地域の情報発信_02_20190616
ソーシャルメディアを活用した地域の情報発信_02_20190616ソーシャルメディアを活用した地域の情報発信_02_20190616
ソーシャルメディアを活用した地域の情報発信_02_20190616義広 河野
 
教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316
教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316
教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316義広 河野
 
卒業論文ルーブリック_20181217
卒業論文ルーブリック_20181217卒業論文ルーブリック_20181217
卒業論文ルーブリック_20181217義広 河野
 
プログラミング応用b 長期課題(2)
プログラミング応用b 長期課題(2)プログラミング応用b 長期課題(2)
プログラミング応用b 長期課題(2)義広 河野
 
教員免許状更新講習20180821
教員免許状更新講習20180821教員免許状更新講習20180821
教員免許状更新講習20180821義広 河野
 
高大連携授業20180803
高大連携授業20180803高大連携授業20180803
高大連携授業20180803義広 河野
 

More from 義広 河野 (20)

河野ゼミ説明会20221116
河野ゼミ説明会20221116河野ゼミ説明会20221116
河野ゼミ説明会20221116
 
河野ゼミ研究紹介20221019
河野ゼミ研究紹介20221019河野ゼミ研究紹介20221019
河野ゼミ研究紹介20221019
 
河野ゼミ研究紹介20211020
河野ゼミ研究紹介20211020河野ゼミ研究紹介20211020
河野ゼミ研究紹介20211020
 
河野ゼミ紹介20201118
河野ゼミ紹介20201118河野ゼミ紹介20201118
河野ゼミ紹介20201118
 
オンライン文化学術展2020「河野ゼミ研究紹介」
オンライン文化学術展2020「河野ゼミ研究紹介」オンライン文化学術展2020「河野ゼミ研究紹介」
オンライン文化学術展2020「河野ゼミ研究紹介」
 
専門演習_河野ゼミ説明会20191120
専門演習_河野ゼミ説明会20191120専門演習_河野ゼミ説明会20191120
専門演習_河野ゼミ説明会20191120
 
専門演習_河野ゼミ紹介20191023
専門演習_河野ゼミ紹介20191023専門演習_河野ゼミ紹介20191023
専門演習_河野ゼミ紹介20191023
 
コミュニティカレッジさくら20190825
コミュニティカレッジさくら20190825コミュニティカレッジさくら20190825
コミュニティカレッジさくら20190825
 
高大連携授業20190730
高大連携授業20190730高大連携授業20190730
高大連携授業20190730
 
高大連携授業20190730(抜粋)
高大連携授業20190730(抜粋)高大連携授業20190730(抜粋)
高大連携授業20190730(抜粋)
 
千葉市若葉区共催市民公開講座_20190711
千葉市若葉区共催市民公開講座_20190711千葉市若葉区共催市民公開講座_20190711
千葉市若葉区共催市民公開講座_20190711
 
プレゼンの作り方2019
プレゼンの作り方2019プレゼンの作り方2019
プレゼンの作り方2019
 
プレゼン勉強会_若葉区公開講座_20190620
プレゼン勉強会_若葉区公開講座_20190620プレゼン勉強会_若葉区公開講座_20190620
プレゼン勉強会_若葉区公開講座_20190620
 
専門演習説明会『河野ゼミの紹介2019』
専門演習説明会『河野ゼミの紹介2019』専門演習説明会『河野ゼミの紹介2019』
専門演習説明会『河野ゼミの紹介2019』
 
ソーシャルメディアを活用した地域の情報発信_02_20190616
ソーシャルメディアを活用した地域の情報発信_02_20190616ソーシャルメディアを活用した地域の情報発信_02_20190616
ソーシャルメディアを活用した地域の情報発信_02_20190616
 
教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316
教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316
教育システム情報学会(JSiSE) 2018年度第6回研究会_20190316
 
卒業論文ルーブリック_20181217
卒業論文ルーブリック_20181217卒業論文ルーブリック_20181217
卒業論文ルーブリック_20181217
 
プログラミング応用b 長期課題(2)
プログラミング応用b 長期課題(2)プログラミング応用b 長期課題(2)
プログラミング応用b 長期課題(2)
 
教員免許状更新講習20180821
教員免許状更新講習20180821教員免許状更新講習20180821
教員免許状更新講習20180821
 
高大連携授業20180803
高大連携授業20180803高大連携授業20180803
高大連携授業20180803
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 

Recently uploaded (8)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 

Rails講座1

  • 2. Rails講座の概要 目的 Ruby on Rails(Rails)の知識を得る Webアプリケーションの開発に活かす Webアプリ開発の最新動向を知る 進め方 解説に加え、適宜演習を交える 内容 第一回目:Railsの概要とRailsアプリの作成 第二回目:開発環境と実装、デバッグのポイント 第三回目:RailsアプリのApache連携とSSL対応 第四回目:Twitter APIを利用した連携アプリの開発 第五回目:Railsでのサーバ間通信~RESTfulな開発~
  • 3. 第一回目の概要 Railsの概要 Ruby on Railsとは MVCアーキテクチャ 利用するRails環境 Railsアプリの作成(演習) Railsプロジェクトの作成とディレクトリ構成 マイグレーションによるDB作成 コントローラとビューの作成 Railsアプリの実行 Rails開発のメリット アジャイル開発 プロジェクト管理
  • 4. Ruby on Railsとは 特徴 Webアプリケーション開発の「フレームワーク」 オブジェクト指向スクリプト言語「Ruby」で記述 MVC(Model-View-Controller)アーキテクチャ モデル、ビュー、コントローラでの役割分担 RubyとRails Ruby:プログラム言語 Rails:Rubyで記述されたフレームワーク フレームワーク:ツール、ライブラリ、設定ファイル等 Ruby on Rails Ruby 図1. RubyとRailsの関係
  • 5. MVCアーキテクチャ MVCアーキテクチャ モデル:DBとの連携(ActiveRecordの利用) ビュー:画面表示 コントローラ:ユーザからのデータ入力 コントローラ モデル DB 端末 ビュー ユーザ 図2. MVCアーキテクチャの概要
  • 6. Railsの設計哲学 DRY(Don’t Repeat Yourself、繰り返しを避けよ) 同じコードの繰り返しを避け、効率・品質の向上を目指す 設定より規約(Convention over Configuration) あらかじめ用意された規約に従うことで設定を不要にする 例:モデルの命名規則 テーブル名:members(複数形にする) モデルのクラス名:Member(単数形となる) クラスを記述するファイル名:member.rb
  • 7. Railsの主な特徴 ルーティング 「&」や「=」のないきれいなURLが使える 例:http://localhost:3000/members/show/1 マイグレーション DBのテーブルを定義するための機能 DBの種類に依存しない(SQL文は書かない) 対応DB:MySQL, PostgreSQL, SQLite, SQL Server, Oracle モデルの操作 モデルの操作がDBの操作に対応(取り出し、保存、削除) 値の取り出し:@member.birthday 条件指定での検索:@member = Member.find_by_name(‘satou’) コントローラ  アクションパラメータ
  • 8. Rails環境 必須環境 Ruby 1.8.5 Rails 2.10 RubyGems 1.3.1 Apache 2.2 MySQL 5.0 注意事項 Ruby 1.8.5は少し古いバージョン yumでは1.8.5が最新だが、1.8系は1.8.7まである 1.8系と1.9系は言語仕様がだいぶ違う
  • 10. Railsアプリの作成(1) 1. プロジェクトを作ってみよう # rails プロジェクト名 –d mysql ※-dオプションはDBの指定(今回はmysql) ディレクトリの内容を確認 app:アプリ、config:設定ファイル、db:DB定義 public:コンテンツ置き場、script:サーバ、ジェネレータ 2. マイグレーションでDBを作る # cd rails_test # ruby script/generate migration person
  • 11. Railsアプリの作成(2) 3. マイグレーションファイルを編集する # vi db/migrate/***.rb class Person < ActiveRecord::Migration defself.up create_table :people do |t| t.string :name t.integer :age t.timestamps end end defself.down drop_table :people end end
  • 12. Railsアプリの作成(3) 4. DBを作成する # vi config/database.yml  ※DBの設定を確認する。必要ならスキーマ名を変更する。 rakeコマンド:DB操作(作成、削除、マイグレーション) # rake db:create # rake db:migrate 5. DBの内容を確認する # mysql –u root mysql> show databases; mysql> use project1_development; mysql> show talbes;
  • 13. Railsアプリの作成(4) 6. コントローラとビューを作る #ruby script/generate controller people  ※controllerの指定でコントローラとビューが作成される 7. モデルを作る # ruby script/generate model --no-migration  ※オプションでマイグレーションしないを指定
  • 14. Railsアプリの作成(5) 8. コントローラを編集する # vi app/controllers/people_controller.rb DBの登録内容を表示するメソッドを作成 class PeopleController < ApplicationController def index @people = Person.find(:all) respond_to do |format| format.html # index.html.erb format.xml { render :xml => @people } end end end
  • 15. Railsアプリの作成(6) 9. ビューを編集する # vi app/views/people/index.html.erb コントローラのindexメソッドに対応する画面表示 <h1>Listing people</h1> <table> <tr> <th>Name</th> <th>Age</th> </tr> <% for person in @people %> <tr> <td><%=h person.name %></td> <td><%=h person.age %></td> </tr> <% end %> </table>
  • 16. Railsアプリの作成(7) 10. サーバを起動する # ruby script/server 以下のURLにアクセスして動作を確認 http://157.80.83.208:3000/ http://157.80.83.208:3000/people/
  • 17. Railsアプリの作成(8) これまでの手順はscaffoldで簡単にできる #ruby script/generate scaffold person name:stringage:integer # rake db:create # rake db:migrate サーバを起動する # ruby script/server
  • 18. Rails開発のメリット アジャイル開発 迅速かつ適応的なソフトウェア開発 簡単にプロトタイプ開発を行い、適宜修正しながら進める プロジェクト管理 プロジェクトのディレクトリにすべてが入っている プログラム、設定ファイル、ログ、DB定義、サーバ機能 ディレクトリをSubversionで管理するだけでよい DB管理が容易 スキーマのバージョン管理 RakeコマンドによるDBのバージョンアップ/ロールバック 他のDBへの切り替えが容易