日記

日本語の勉強のためのブログ

WSLでRailsの学習を始める

結構躓いたので、後々のためにメモ。Heroku周りのエラーの解消が大きな目的である。

0. 注意事項

初心者のうちは書かれた手順に忠実に従うべきである(自戒)。「この作業いらなくね」と思っても、とりあえずそれに従っておくのが一番早い。無理なショートカットは禁物である(自戒)。

1. RubyRailsなどのインストール

以下の記事の「8. bundler を入れよう」までを行う。nを用いたNode.jsのバージョン管理については飛ばしてもいいかもしれない。自分は飛ばしてしまった。

なお、Rubyのインストール時にはHeroku(後で使うサービス)の推奨するバージョンに合わせておく。推奨バージョンは Heroku Ruby Support | Heroku Dev Center に書かれている。
現段階(2021-08-14)でいえば、推奨バージョンは2.6.8, 2.7.4, 3.0.2のどれかである。どれにすればよいかは正直わからないが、自分は2.7.4を選択した(これまで2.7.0を利用していたので)。

qiita.com

2. Railsの学習サービス

Railsガイドは自分には難しかったので、Railsチュートリアルの無料で見られる版を利用している。インストール関連については、上の記事で既にインストール済みのものについては読み飛ばしてよい。

ただ、Gemfileの編集については必ず言われた通りに行うこと。多くのエラーが生じる危険がある。

railstutorial.jp

2.1 rails server時にエラーが出る場合

Webpacker configuration file not found app/config/webpacker.yml. Please run rails webpacker:install 

というエラーが出た場合、webpackerがインストールされていない可能性がある。
rails webpacker:installを実行して、

Done in 23.99s.
Webpacker successfully installed 🎉 🍰

のようなメッセージが出たらインストールできている。

参考 qiita.com

2.2 2章の演習4-1について

以下の演習について。

ユーザーのshowページを編集し、ユーザーの最初のマイクロポストを表示してみましょう。同ファイル内の他のコードから文法を推測してみてください(コラム 1.2で紹介した技術の出番です)。うまく表示できたかどうか、/users/1 にアクセスして確認してみましょう。

最初、app/views/users/show.html.erbを次のように記述してみたがうまくいかなかった。

<p>
  <%= if !@first_post.nil? then %>
    <strong>First post:</strong>
    <%= @first_post.content %>
  <%= end %>
</p>

これは、<%= ~ %><% ~ %>の違いに起因するバグである。

www.javadrive.jp

以下のように、if文にあたる部分のみ<% ~ %>と直したら改善した。

<p>
  <% if !@first_post.nil? then %>
    <strong>First post:</strong>
    <%= @first_post.content %>
  <% end %>
</p>

余談

heroku logsを間違えてheroku logとしてしまった際に「間違えてません?」と言ってくれて、しかも正しいコマンドを提示してくれるの親切だなぁ

$ heroku log
 ›   Warning: log is not a heroku command.
Did you mean logs? [y/n]: y
2021-08-14T03:11:26.033581+00:00 app[web.1]: => Booting Puma
(このあとログが永遠に続くが略)