最近のRoRの事しらない(2.2までしか知らん)人が弄ってみてつまづいた事とか書いていく。
$ ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
$ gem install rails
Fetching: i18n-0.6.9.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
sudoしていいの?と思ったけど一応調べた。
http://stackoverflow.com/questions/14607193/installing-gem-or-updating-rubygems-fails-with-permissions-error
「rbenvとかRVMとか使うのを強く推すけど?」か。なるほどー。
http://qiita.com/skinoshita/items/2cf0c27a6ff4f0602568
こちらを参考にアクションしてみる。元々入っているRubyさんはどうしたらいいんだろ。
最後、Herokuに上げたいのでHeroku互換のRubyを入れようと思ったら、gemで指定できると知る。
https://blog.heroku.com/archives/2013/6/17/ruby-2-default-new-aps
によると、新しいアプリはバージョン2系で動いている様子。じゃぁ、2で入れようと決めた。
$ rbenv install 2.0.0-p247
$ which ruby
/Users/xxx/.rbenv/shims/ruby
$ which gem
/Users/xxx/.rbenv/shims/gem
$ gem install rails
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
あれ。またうまくいかない。別のパスに入るんじゃ無いん?
http://qiita.com/emadurandal/items/a60886152a4c99ce1017
のお世話になる。最近のqiitaの引っかかり率異常。超助かる。
使うバージョンを指定しないといけないんだ。下記のように。
$ rbenv global 2.0.0-p247
$ rbenv versions
system (set by /Users/ms2/.rbenv/version)
* 2.0.0-p247
あと、直接インストールしない方法が先のリンクで紹介されていたので、従って入れる。言われた通りにやっているとWebrick起動まではOKなはず!
bundle exec と頭に付けるのを忘れてしまうのでそれだけは慣れが必要かも知らん。
GemFile.lock等の扱いが気になったら下記を見るべし。
http://qiita.com/tnoda_/items/a04e761d595a742fcdca
とりあえずScaffoldは下記なんかをサラッと眺めると出てくるのでやってみる。
http://www.slideshare.net/yizawa/getting-started-with-ror4-bs3
アプリができたら一回デプロイしてみる。
http://qiita.com/tstomoki/items/cd2391e028dc44dd6f40
gemの記述をpostgres用に入れ替えてみるも、途中でエラー。何かコンパイル失敗している模様。
mkmf.log
を見ると、postgresql用のヘッダが見当たらないからエラーの様子。
brew install postgresql
したらオッケ。
あれ?参考にした記事はpostgres用のdatabase.ymlを作っていない。別の情報をあたる。
http://yuriponx.com/2012/05/08/heroku%E3%81%A7rails3-2%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99/
こちらを参考にdatabase.ymlを書く。
herokuの管理画面からpostgresの情報を見に行くのも良いと思う。
でもって改めてpushしたらmigrate!
$ heroku rake db:migrate
WARNING: `heroku rake` has been deprecated. Please use `heroku run rake` instead.
警告出るけどDBは構築してくれる。あとは作ったアプリにアクセスするんだ!!
ちなみにユーザーやパス情報が合っていても権限が無いような下記のエラーが最初の頃出ていたようなので、接続できるようになるまでタイムラグがあるのかも知れない。未確認。
FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.