Railsで簡単なアプリをscaffoldで作ってHerokuにデプロイするまで #heroku #PostgreSQL #Rails #Ruby - Qiita
Rails力がそこそこついてきたので、こちら試したら案外簡単にできました。
年末に別な記事で試した時はギブアップしたのですが。orz
Herokuアプリ: http://sample-masutaka.herokuapp.com/
GitHub: https://github.com/masutaka/rails.sample/
基本、記事の通りで大丈夫ですが、最初からRailアプリを作ったことがな
かったので、ちょっとだけハマりました。
ローカルでRailsアプリ作成
アプリ名のディレクトリ(今回はsample)作って、cdしました。
次にRails gemをインストールしました。Gemfileを作って"bundle
install"実行です。今回は.bundle/configを作って、ローカルのgemは
vender/gems以下にインストールされるようにしました(Heroku上では強制
的にvendor/bundle以下にインストールされるみたい)。
https://github.com/masutaka/rails.sample/commit/e69e24db750b97576a67d62c1e526b8dc57e5f09
最後に"bundle exec rails new .“を実行すれば、Rails環境がセットアッ
プされます。“Could not find gem ‘jquery-rails"というエラーが発生し
ましたが、“bundle install"したら問題なさそうでした。
https://github.com/masutaka/rails.sample/commit/fffc748ce3ddf86c286b0ec3515ddc6792b1061c
この状態で”./script/rails s"すると、http://localhost:3000 にアクセ
ス出来るようになります。
初めてのHerokuへのデプロイ
記事の通りに"heroku create sample-masutaka"でアプリを作り、
git push herku masterすればデプロイ完了です。
ちなみにアプリを作ると"git remote add heroku ..“されるため、
“git push heroku master"出来るようになります。
“git remote -v show"で確認出来ますね。
記事の通りにDBを指定しなかったので、sqlite3関連でエラーになってしま
いました。Herokuではsqlite3使えないのですね。production環境のDBを
postgreSQLにして解決しました。
https://github.com/masutaka/rails.sample/commit/a73fa5cd3b10dd8a47d1daf6b8483051db257374
http://sample-masutaka.herokuapp.com/ にアクセス出来ました。
簡単なブログアプリを作る
以下を実行するだけで http://localhost:3000/articles から記事を書け
るようになります。Railsはすげーなあ。
% ./script/rails g scaffold article title:text text:text
% bundle exec rake db:migrate
https://github.com/masutaka/rails.sample/commit/f4ad98c41877341c410f1ece50b83e459fe1a417
ブログ機能をデプロイ
問題なさそうなので、“git push heroku master"でHerokuにデプロイしま
したが、PostgreSQL関係でエラーになってしまいました。
config/database.ymlのproductionがsqlite3のままなので当然ですね。
herokuでRails3.2のアプリケーションを動かす - のほほん女子大生のインタラクション日記
こちらを参考に設定しました。DBのホスト名やユーザ名、パスワードはア
プリのResourcesにあるHeroku Postgres Dev :: Grayに書いてあります。
https://github.com/masutaka/rails.sample/commit/bcd3d018ecb14a6354a504648565c9afd3276064
(当然ですが、pushしたcommitでは伏せ字にしてます。)
http://sample-masutaka.herokuapp.com/articles
にアクセスしてもまだ
エラーになります。migrationしてないからですね。
“heroku run rake db:migrate"したらアクセス出来るようになりました。
やった!