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

へログが出力されます

ubuntuにnode.jsとnpmをインストールする

sudo apt-get install -y nodejs
を見ながら

$ curl -sL https://deb.nodesource.com/setup | sudo bash –

$ sudo apt-get install -y nodejs

確認
$ node -v
v0.11.13

$ npm -v
1.4.9

なんか古いですね..
とりあえず急場はこれでしのぎました

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

でできあがり