はじめるRails3(2)の写経メモ。
ようやく9章と10章のRails Consoleを抜けた。
今日は、11.1のタスクのカテゴリ情報をセレクトボックスの中に表示するところをやった。
途中 each do を each.do ってtypoしていてうんうん唸っていた。
GitHubにもひさしぶりにpushした。
commit log
ちょっと停滞してたのでまた淡々と写経していくぞー。
ポエムがないほうのpplogです
はじめるRails3(2)の写経メモ。
ようやく9章と10章のRails Consoleを抜けた。
今日は、11.1のタスクのカテゴリ情報をセレクトボックスの中に表示するところをやった。
途中 each do を each.do ってtypoしていてうんうん唸っていた。
GitHubにもひさしぶりにpushした。
commit log
ちょっと停滞してたのでまた淡々と写経していくぞー。
はじめるRails(2)を写経中で、Rails consoleをいじる章(9章)があるんだけど、consoleの結果がとても見づらくてなんだか理解が進まない。
もっと見やすくできないかなー、と思ってググったら見つかった。
hirb を導入して rails console を快適に利用する
Hirb.enableするとこんな感じになる。便利。
LionにRVM入れて Railsの環境を作るときのメモを残しておく。
rbenv+ruby-buildってのがイケてるらしい(こことかこことか参考)ので試してみたいのだけれど、環境作ってばかりで写経が進まないとか本末転倒なのでしばらくはRVMで。
$ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi
を書いて保存して、ターミナル再起動。そしたらrvmコマンドが使えるようになる。
$ rvm list known
で表示。
$ rvm install ruby-1.9.2
してみる。
Install of ruby-1.9.2-p290 - #complete
5分くらいでインストールがおわった。(1.9.3を入れようとしたらエラーになったのでそうそうに諦めた)
$ ruby -v
すると、今は
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
となるけど、
$ rvm use 1.9.2
とすると、
$ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]
1.9.2になる。さらに、
$ rvm use 1.9.2 --default
これをデフォルトにしておけば、毎回指定しなおす必要がない。
$ rvm gemset create rails30
先ほどインストールしたruby1.9.2とrails30の組み合わせをデフォルトにする
$ rvm 1.9.2@rails30 --default
確認
$ rvm gemset list global => rails30
$ gem install rails -v 3.0.10
参考書のバージョンが3.0系なのでバージョン指定で。
インストールはじまるまでに5分くらい無反応で心配になったけど、無事完了。
適当なアプリケーションをscaffoldで作ってみて動作確認
$ rails new test $ cd test $ rails g scaffold Post title:string body:text
scaffoldしようとしたら、
Could not find gem 'sqlite3 (>= 0) ruby' in any of the gem sources listed in your Gemfile. Run `bundle install` to install missing gems.
っていわれたので
$ bundle install
いろいろインストールされた
もういっかい
$ rails g scaffold Post title:string body:text
今度はscaffoldできた。
最後にmigrateして、サーバー起動
$ rake db:migrate $ rails s
で、localhost:3000/posts にアクセスして動作してれば完了。
おわり。
以前書いた自分の記事を参考にしながら、MBAからもherokuにpushできるようにしてみる。
まず homebrew いれる
$ /usr/bin/ruby -e \"$(curl -fsSL https://raw.github.com/gist/323731)\"
homebrewで、postgresいれる
$ brew install postgresql
heroku コマンドのインストール
$ gem install heroku
SSH鍵の作成
$ ssh-keygen
途中何回か質問されるけど、全部enter
Found the following SSH public keys: 1) github_rsa.pub 2) id_rsa.pub
って聞かれたので、id_rsa.pub の2を選んでenter
すでにつくってあるプロジェクトにpush する方法がわからないので、新規のプロジェクト作ってそこにpushしてみる
$ heroku create
で、プロジェクト作成して、push
$ git push heroku master
で、デプロイ。
デプロイ終わったら、DBの接続情報を確認
$ heroku console >> ENV[\'DATABASE_URL\'] => \"postgres://yyyyyyyy:xxxxxxxxxxxxxxxxxxxx@ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com/yyyyyyyy\" >> exit
config/database.ymlを編集してコミットして再度push
$ git push heroku master $ heroku rake db:migrate
よくわかってないけど、これで無事動いた。
GitHub for Mac でコミットしたあとに、heroku push すると、GitHubにもコミットしたような扱いになってて?Historyに表示されるんだけど、GitHubを見に行ってもそんな履歴はない・・・。
いや違う。ちゃんと乗ってた。
GitHub for Macでコミットしたあとに、heroku pushすると、しばらくしてGitHubにもpushされてる?
うーーん、よくわからない。
GitHubからcloneしたから??
MacBookAirのローカルにRVM + Railsな環境ができたので、GitHubにあげてるレポジトリをコピーしてきて写経の続きをできるようにする。
そういうえば、途中で bundle install するように言われた気もするな。
ともかく、これで写経の続きができるようになった。
あとは、herokuにpushする設定かな。
ホームポジションからできるだけ手を動かさないようにすると、コマンドキーを押すとき左親指をぐいっと手のひらの下に押しこむ形になるので、親指の付け根が痛くなってきた。
極力親指の出番が減るように設定をかえてみよう。そうしよう。
KeyRemap4MacBook
設定不要で使えるやつ
あとはVimiumも併用すれば大分親指の出番が減るはず。
まだ癖で親指使っちゃうときあるけど、慣れていこう。
■追記
結局、control+c,v,xはすぐにやめてしまった。
ターミナルでcontrol+cが使えなくなって、railsのサーバーを停止できなくなったので。
右shiftをコマンドに置き換えているので、こちらを活用するようにしよう・・・。
■さらに追記
ターミナルの場合はcontrol+c,v,xを無効にできる版も用意されてた。
Except in Terminal,VM,RDC,Emacs,X11,Eclipseって書いてある方がそれ。
ということでこのショートカット復活。
vimium
キーボード。職場は日本語配列、家はUS配列で色々慣れない。
刺身さんに教えてもらった zipコマンド便利。
Macでパスワード付きzipをつくるために、アプリケーションインストールする必要なかった。
今日のBGM
引き続きセットアップ中。今日はDivvyインストールから。
Divvyは手放せなくなったツールの一つで、ウィンドウサイズをキーボードだけで変更できる。
呼び出しはctrl+shift+space を割り当ててる。
以下のショートカットを設定して画面を有効活用。
お次はclipMenuインストール。
ショートカットはcommand+option+vに。
Vimiumのショートカットを改めて見てみる。大文字の場合はshfit押しながらって意味。
MBAのケース「LaptopDiverL Air13 」ってやつを ZOZOで注文した。
Amazonにもあったけど、ZOZOのほうがセール中で安かった。
勉強がてら手元のMacでRailsアプリを作ってるんだけど、作ったからにはworld wide webへ公開したい。
最初はdotcloudで公開しようとしたんだけど挫折したので、herokuでチャレンジしてみることに。
ところがherokuはpostgreSQLしか(?)使えないので、単純にpushしただけではこちらも動かなかった。
刺身さんの手助けを得ながらherokuで公開することができたので、手順を忘れないようにメモっておく。
ほぼmizzyさんが社内のwikiにまとめてくださってたやつです。
なんかパクってごめんなさい。。。
手元の環境
Railsアプリのディレクトリ直下にある Gemfile の最後に追記
group :production do gem 'pg' end
bundle updateするために必要らしいので、postgresql をインストールする。
homebrewを使ってインストール。5分もかからず終わった。
$ brew install postgresql
終わったら、bundle update を実行
$ bundle update
で、一旦コミット&デプロイする。
最近インストールした GitHub for Macが使いやすいので、こちらでコミット。
herokuへのデプロイはコマンドラインで。
$ git push heroku master
おわったら heroku console というコマンドでデータベースの接続情報を確認
$ heroku console >> ENV['DATABASE_URL'] => "postgres://yyyyyyyy:xxxxxxxxxxxxxxxxxxxx@ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com/yyyyyyyy" >> exit
yyyyyyyy、xxxxxxxxxxxxxxxxxxxxな部分はユーザー毎に違う。
データベースの情報を config/database.yml で設定する。
production: adapter: pg database: yyyyyyyy username: yyyyyyyy password: xxxxxxxxxxxxxxxxxxxx host: ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com
host部分もユーザーごとに違うのかもしれないので要確認。
編集した内容をコミット&デプロイする。
コミットはGitHub for Macで。かわいいよ、GitHub for Mac。
デプロイはターミナルで。かわいいよ。ターミナル。
$ git push heroku master
最後に、migrate。
migrateってのが何なのかわかってないけど、データベーススキーマを流し込むということをやってるらしい。
$ heroku rake db:migrate
以上で割り当てられたURLへアクセスすれば、動作するアプリケーションのページが表示された。