【Ruby on Railsチュートリアル】第二章scaffoldで生成するだけが出来なくて。

第二章

Toyアプリケーションを作るらしい。

まぁ最初は第一章の続きだろうと思ってたら、早々に止まる。

まぁ昨日止まったから今朝からまとめ初めたんだけど。

アプリケーションを作る

新アプリケーション作成

$cd ~/environment
$ rails 5.1.4 new toy_app
$ cd toy_app/

まぁここまでは同じ。

Gemfileも指示通りにコピペして保存。

$ bundle install --without production

ここまでは一連の流れ。

Gitに入れる。

$ git init
$ git add -A
$ git commit -m "Initialize repository"

ここでBitbucketで新しくリポジトリを作成して、作成したリポジトリでコマンドをたたく。

$ git remote add origin git@bitbucket.org:/toy_app.git
$ git push -u origin --all

確認するとpushが概要に反映されている。

公開鍵の設定のおかげでここまではすんなりといくようになった。

サンプルで”hello,world!"の表示を確認。

Herokuにプッシュ

$ git commit -am "Add hello"
$ heroku create
$ git push heroku master

ここまではすんなりと。

createしたときのドメインでブラウザ表示が出来たし。

でも、練習でcreateしてたら制限回数を超えたらしい。

5つってことらしい。

Herokuのアプリケーションの削除

なのでHerokuのページに行ってみる。ところでHerokuでどうやって削除すればいいんだ?と検索。

コマンドからも出来たらしいのだけど、その作ったIDE側のファイルは削除しちゃったからわからない。

なのでサイトから。

まぁアプリケーションを選択するとメニューに「Settings」ってあって、下の方に

f:id:kisokoji:20180131184908p:plain:w500

これですね。クリックすると

f:id:kisokoji:20180131185256p:plain:w400

って表示されるので、()の中の文字をテキストエリアにコピペすると、Delete appが活性になる。

で、削除。

トライ アンド エラー

中ですので、削除します。

Usersリソース

ここではユーザー用のデータモデルを、そのモデルを表示するためのWebインターフェイスに従って実装するってことらしい。

で、このチュートリアルではUsersリソースはすべてのRailsプロジェクトに標準装備されているscaffoldジェネレータで生成するってことで

$ rails generate scaffold User name:string email:string

止まった。

固まったって感じです。え・・・?な感じ。

検索・・・

$ spring stop
$ bin/spring

これのあとに再度やったら行った〜。

ふぅ〜。

データベースをmigrate

$ rails db:migrate

さて、問題です。rails generate scaffold Userすると勝手にファイルが作成されるわけですよね?

どのタイミングでcommitしてpushすべきだ?

ってことで、とりあえず

$ git status

で、そうですよね?を確認して

$ git commit -am "Add scaffold"
$ git push heroku master

してみました。

そして別ターミナルで

$ rails server

ローカルサーバで確認する

ここで勘違いをした自分がいたわけですね。

これはあくまでも「ローカルサーバ」だからデプロイする必要はなかったのか?

ってことで、ローカルサーバでユーザーのアクションを確認した。

なるほど〜。ってそのことに気づかずに何度トライアンドデリートしたことか。

で、トライアンドデリートであったもうひとつの問題。

Cloud9でHeroku使おうとしたらエラーだよ

createはうまく行ったように見えたのだけど、それなのにgit push heroku masterはエラー?な感じ。

$ heroku -v

ってやったら

WARNING
WARNING Node version must be >=8.3.0 to use the Heroku CLI
WARNING

なんじゃこりゃ。

node.jsのバージョンがち〜が〜う〜だ〜ろ〜ってことらしいです。

バージョン確認

$ node -v
v6.11.X

v8.3.0なんてないし。

ってことで、

$ nvm install v8.3.0

いいねぇ〜この辺はすんなり入る。ローカルだと権限がとかいろいろ言われそうな感じだけど。

$ nvm use --delete-prefix v8.3.0

これをしないと使えるようにはならないのか?

でバージョン確認したら

$ node -v
8.3.0

よし!これでいいんでしょってことで再度

$ heroku -v heroku-cli/6.14.43 (linux-x64) node-v8.3.0

これで大丈夫らしい。

でも、この後に上で書いたハングアップがあったりしてエラーアンドデリートばかりしてたけど、この設定は1回したら大丈夫らしい。

基本的には自分の備忘録なので同じ症状でヒットしたけど、うまく行かなかったはごめんなさい。他を当たってくださいね。

きっと見つかります。私はここまではうまくいきました。