画像

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"したらアクセス出来るようになりました。
やった!