Rails Tutorial (1)

Rails Tutorial(4.0版)をやっているので途中で思ったこととか、詰まったところを書いていく。

1章

なんとなくRails 4.1.0でプロジェクトを作成してみる。 rails new したら、最後の方にbundle exec spring binstub --allが実行された。4.1からspringが標準に加わったらしい。springRailsの各コマンドを高速化するgem。

ただ、チュートリアルと別バージョンのRailsで進めて面倒が増えるのもつらいので、Rails 4.0.2で作成し直す。以下のコマンドで以前のバージョンのRailsプロジェクトが作れる。

rails _4.0.2_ new first_app

2章

多少なりともRailsを経験していると、「よくわからないけど動く」というのが少なくて楽しく進められる。

3章

hamlを見た後にERBを見ると、いまいち好きになれなかった。もう少し調べてみるとslimというのがあるらしい。サンプルを見てみると%も無いし実行速度もERB,hamlより早いらしいのでこれを使ってみることに。

テンプレートエンジンをslimにする

Gemfileに追記

gem 'slim'
gem 'slim-rails'

config/application.rbのApplicationクラスに追記

class Application < Rails::Application
  ...
  config.generators do |g|
    g.template_engine :slim
  end
  ...
end

Postgresqlを使ってみる

演習問題でDBをsqliteからpostgresqlに変えるというのがあったので、やってみたら苦労した。ネットで調べても色々な情報があってどうやっていいのかいまいち分からなかった。なんとかできたのでやり方をメモしておく。

brew install postgresql
# ログイン時にpostgresqlを起動する設定
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents 
# postgresを起動
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# DBを確認する
psql -l
# ユーザを作る(パスワードなどは適当に変える)
psql
CREATE ROLE testuser WITH LOGIN CREATEDB PASSWORD 'testuser';

# 作成できたかを確認
select rolname from pg_roles;
# データベースを作成
create database rails_tutorial;

以下はconfig/database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: rails_tutorial
  pool: 5
  username: testuser
  password: testuser
test:
  adapter: postgresql
  encoding: unicode
  database: rails_tutorial
  pool: 5
  username: testuser
  password: testuser

その他

GuardとSporkの設定は省略。Rails4.1ではSpringの方がデフォルトになっちゃってるし今からSporkをやるメリットはそんなになさそうだったので。

4章

Helper用のクラスとRubyがメイン。

Rubyの方は知っている内容だった。プログラミング入門 - Rubyを使ってをやっていればHelperの部分以外は読み飛ばしていい。

HelperはそれぞれのViewで共通して使う処理をまとめておく感じかな。