2013年8月8日木曜日

Head First Rails 4 Chapter2

$ rails new MeBay
$ cd MeBay
$ rails g model ad name:string description:text price:decimal seller_id:integer email:string img_url:string
$ rake db:migrate
$ curl -o db/development.sqlite3 http://www.headfirstlabs.com/books/hfrails/code/development.sqlite3
$ rails g controller ads

app/views/ads/show.html.erb の作成は変更なし
config/routes.rb はコメントを参考に以下のように設定して動作を確認できた。
Rubyらしくより規約に近づいた設定になっている。

MeBay::Application.routes.draw do
  root 'welcome#index'
  get 'ads/:id' => 'ads#show'
end

$ rails server

indexの追加、viewとcontrollerは変更なし
config/routes.rb は下記を追記

get 'ads/' => 'ads#index'

静的コンテンツの配置は仕様が変更になっている。ハマりそうだったので今回はスルー。

2013年8月6日火曜日

Head First Rails 4

バージョンアップに伴い再度チャレンジ

Chapter1

$ rails new tickets
$ cd tickets
$ rails g scaffold ticket name:string seat_id_seq:string address:text price_paid:decimal email_address:string
$ rake db:migrate
$ rails server

ラベル修正は基本的に差異はない。new.html.erbとedit.html.erbの記述が_form.html.erbにまとまっていてDRYしてる。

$ rails g migratation AddPhoneToTickets phone:string
$ rake db:migrate

ラベル修正は直前のと同様。Rails2.xではこの変更で十分だったが、Rails4でのscaffoldはcontrollerの作りが少し違うためこのままだとPhoneが空欄のままになっている。dbからデータを取得するカラムを指定しており、こちらにもPhoneを追加してあげる必要があった。具体的には下記の通り。

$ vi app/controllers/tickets_controller.rb

# ticket_paramsを修正
# phoneを追加してあげる必要がある
params.require(:ticket).permit(:name, :seat_id_seq, :address, :price_paid, :email_address, :phone)

イベントの追加も同じように

$ rails g scaffold event artist:string description:text price_low:decimal price_high:decimal event_date:date
$ rake db:migrate

2013年8月5日月曜日

Ruby2.0+Rails4へアップデート


Mac OS X 10.8.4
Ruby 1.8.7
Rails 2.3.5

HomeBrewインストール済み

$ brew update
$ brew install rbenv
$ brew install ruby-build
$ vi ~/.bash_profile

# 以下の2行を追記
# Ruby
eval "$(rbenv init -)"

$ source ~/.bash_profile

$ brew install readline
$ brew install openssl

$ RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2.0.0-p247

$ rbenv global 2.0.0-p247
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]

$ gem install rails
$ rails -v
Rails 4.0.0

参考:
Ruby on Rails http://rubyonrails.org

MacにRubyをインストールする時のメモ

[Mac]rbenvを使ってRuby2.0をインストール