Ruby on Railsでscaffoldするまでおさらい

Railsはインストール済みの状態からRailsをいちから復習してみました

Railsは
– DRY
– COC
– REST
– MVC
な設計になっています

  • dry

don’t repeat yourself
同じことを繰り返さない

  • coc

convension over configuration 設定より規約
規約をしばって効率化する設計

  • rest

すべてのリソースに一意となる識別子がある、とかいう考えかたです
URIに対してHTTPメソッドでアクセスし処理をします

  • mvcアーキテクチャー

Model View Controller
で処理を分ける

$ rails new app

appディレクトリにrailsが入ります

javascript runtimeがないときは
therubyracer gemを入れるといいです

私はnode.jsを入れていました

(参考)
centosにnode.jsとnpmをインストールする | bgbgbg
ubuntuにnode.jsとnpmをインストールする | bgbgbg

$ rails server (省略で rails s )
でサーバーが立ち上がる
rails 4.2では rails s -b 0.0.0.0としないとlocalhost以外からアクセスできません

サーバーを止めるには ctrl + c で止めます

$ rails g scaffold Use name:string score:integer
でUserモデルに string型のnameとinteger型のscoreを持ったアプリができる

$ rake db:migrate
でデータベースへmigrationファイルを適用する(テーブルとか作る)

これで
http://localhost:3000/users/
にアクセスすれば

rails-scaffold
rails-scaffold2
rails-scaffold3

といったアプリができあがります

素のRailsでコントローラーのデバッグをする

デバッグ用のGemとかいれず、Railsだけをいれているときコントローラーのデバッグをするなら

logger.debug (ログに出したいもの)
とすれば、logsディレクトリにログがでます

logger.debug params

とかです

development環境なら

logs/development.log

へログが出力されます

Railsのデータベースをsqlite3からpostgresqlに変更する

Railsのデータベースをsqlite3からpostgresqlに変更してみました
postgresqlはインストールして、Rails用のユーザーを作っておきます

Gemfileを変更します

-gem ‘sqlite3’
+gem ‘pg’

sqlite3の代わりにpgに変更

データベース設定ファイルを修正

config/database.yml

default: &default
  adapter: postgresql
  encoding: utf8
  reconnect: false
  pool: 5
  username: root
  password: root
  host: localhost

development:
  <<: *default
  database: sample_dev

test:
  <<: *default
  database: sample_test

production:
  <<: *default
  database: sample

というふうにpostgresql用に変更

データベース作成

$ rake db:create
$ rake db:migrate

でできあがり

herokuにrailsアプリをデプロイする

herokuにrailsアプリ手順をおさらい
heroku toolbeltはインストール済みです

railsアプリのディレクトリへ移動します
git管理してなければ

$ git init
$ git add -A
$ git commit -m ‘initial’

とかでGit管理しておきます

$ heroku login

でherokuに一度ログインしていおきます

$ heroku create

でherokuアプリを生成
herokuにアプリをプッシュします

$ git push heroku master

これでデプロイできました
postgresqlを使っていたため

$ heroku addons:add heroku-postgresql

データベース用意

$ heroku run rake db:migrate

アクセスしてみます

$ heroku open

でherokuのアドレスをブラウザで開いたり

$ heroku info

=== xxxxxxx-yyyyy-1111
Dynos:         0
Git URL:       https://git.heroku.com/xxxxxxx-yyyyy-1111.git
Owner Email:   sample@sample.com
Region:        us
Stack:         cedar-14
Web URL:       https://xxxxxxx-yyyyy-1111.herokuapp.com/
Workers:       0

とURLが見れたりします