HerokuでPHPアプリを動かせるようになって気をよくし、今度はウワサのRuby on Railsでいっちょやったるかー!という雰囲気になってきました。
ということで「さすがウサワに名高いRails、いとも簡単に導入できたわ!」と高笑いをしようと思っていたのですが、相当てこずっています・・・。
Rubyをインストールし、gemをインストールし、
$ gem install rails
とするとrailsがインストールされます。
そして
$ rails new test
とかやると、カレントフォルダにtestというアプリができます。
そのフォルダに移動して、rails serverというコマンドを打つとWebサーバーが起動してテストができます。
$ cd test
$ rails server
この辺、apacheでcgiの設定とかガシガシしていた経験があると、かえってハマります。うーん、パラダイムシフト。
アプリのフォルダの中にあるappフォルダの中にviewsやらcontrollersというフォルダがあり、その中にコードを書きます。
viewsのなかにあるapplication.html.erbといったファイルはhtmlのなかにrubyのコードを埋め込めるヤツです。PHPのようなものにあたるもののようです。
PHPみたいにerbのなかにガッツリコードを書くことも不可能ではないようですが、MVCアーキテクチャにしたがって複雑な処理はhelpersのなかにあるapplication_helper.rbというrubyファイルを編集し、コードを記入しないといけないことになっています。(MODEL、VIEW、CONTROLLERの分離)。というか、それをしてしまうとrailsを使っている意味がありません。
とま、以上は教科書に書いてある通りです。
新しいコントローラーを作るには、コマンドラインから
$ rails generate controller HelloWorld
とかやると、上記viewsフォルダとhelperフォルダ、controllerフォルダに該当する名前のファイルが勝手に作られるので、その中身をいじくっていきます。
誤解を恐れずに言えばASP.NETをコマンドラインでやっている感じです。
フレームワークを動かすためにデータベース(RDBMS)が必須で、標準ではフリーのsqlite3が使用されているのですが、Herokuはsqlite3をサポートしておらず、postgresqlを使えと書いてあります。
だが、ローカル環境でpostgresqlを動かす試みも、git push heroku masterしたときだけpostgresqlを使うようにするGemfileの設定も、ことごとく失敗しています。
そもそも、ここまで来るのに環境構築にたいへん苦労した・・・。いったい誰がRailsは簡単にアプリが作れる!とかいったんだ~!
まあ多分、私が中身をちゃんと理解していないからでしょう。
いまさら間抜群ですが、がんばって理解します。