#フレームワークとは?
何故必要なのか?
- 画面表示との連携・分離
- メンテナンス性の向上
- シンプルな構成
- データベースアクセスの柔軟性
どんな種類があるのか?
- Ruby
- Ruby On rails
- sinatra
- Merb
- Java
- PHP
- Symfony
- CakePHP
- Zend
ライブラリとは違う
- ライブラリは様々な機能をまとめて誰でも利用できるようにしたもの
- フレームワークは機能だけではなく「仕組み」を提供するプログラム群のこと
#Railsの基礎知識
Railsの特徴
MVCアーキテクチャ
- M:Model
- データアクセスに関する部分を受け持ちます
- 主にデータベースにアクセスして、必要なデータを取得したり更新したります
- Rails においては「app」フォルダ内の「models」フォルダにスクリプトファイルを用意しまうす
- V:View
- 画面に表示されるWebページ部分を受け持ちます
- テンプレートとなるERBファイルを作ります
- Rails においては「app」フォルダ内の「views」フォルダにスクリプトファイルを用意しまうす
- C:Controller
- 全体の制御を受け持ちます
- 指定のアドレスにアクセスしたらModelを呼び出し、必要なデータを取得しViewにセットして画面に表示するというような一連の処理を行う
- Rails においては「app」フォルダ内の「controllers」フォルダにスクリプトファイルを用意します
設定より規約
- 開発者が設定ファイルを記述するよりも、フレームワークのデフォルトの設定に従うようにする
- 例えば、、、Railsの命名規則
- テーブル名 users
- モデルのクラス名 User
- モデルのファイル名 user.rb
- コントローラのクラス名 UsersController
- コントローラのファイル名 users_controller.rb
DRY
- 繰り返しを避けよ
- 同じコードを別の場所で繰り返し書かない
スクリプトファイルの自動作成機能
- ファイル名クラス名を自動で生成する機能を用いる
必要なものは一通りある
- ローカルでの動作確認用のWebサーバ
- テスト用環境
scaffoldでアプリを作ってみよう
##scaffoldとは?
Railsに搭載されているCRUD機能生成ツール
- Create:新規作成
- Read:参照
- Update:更新
- Delete:削除
- システムにおける基本機能
bundle exec rails g scaffold User name:string email:string birthday:date
rake db:migrate
Userはテーブル名
Herokuにアップ!
HerokuはPaas