RubyMine で Rails Tutorial 14章

ようやく最後の14章

ブランチも多くなりましたね。

モデルの関係を作りますが、なかなかややこしいと思います。RubyMine で図を作ってみて、関係の線を見ると把握しやすいこともあります。

14.2.2 では演習がありました。users_profile_test.rb で、統計情報の表示について確認します。

Ajax での実装をすると、ログではこのように “as JS” と出てきます。

リスト 14.49 は最後の演習です。何をテストするのがいいのか難しかったのですが、|micropost| でぐるぐる回すということから、投稿の内容が含まれているということを見ればいいのかなと思いましてこのようにしてみました。

ヒントにある CGI.escapeHTML を外してみると、I’m sorry のような文字列が I'm sorry. となるのでマッチしないということになりそうです。

長い長いチュートリアルが終わりました。わたしもいい復習になったと思います。
RubyMine の使い方にも慣れることができて、記録を残してよかったです。
どなたかのお役に立っているとうれしいです。

RubyMine で Rails Tutorial 13章

13章やります。あと少しです。

ActiveRecord の関連付けをすると、図も生成できるようになります。
右クリックして Diagrams → Show Diagram → Rails Model Dependency Diagram で作ることができます。

また、この章でもテストと実装とを行き来することが多いですが、ショートカットキーを使うと便利です。

実装からテストへの移動も、テストから実装(テスト対象)への移動もともに shift + command + T でした。
こういう統合開発環境はメニューからさわって一つずつ覚えていくのが使いこなすためのコツですね。

リスト 13.28 では、div.pagination の要素を確認するテストをしていますが、いまは Bootstrap 4 に対応した will_paginate-bootstrap4 を使っているため、ul.pagination が出力されます。テストもそのように直して実行しました。

13.3.2 の演習では if 〜 else 〜 end のそれぞれにパーシャルを作るというものでした。
RubyMine から簡単に切り出せるはずなのですが、後半はうまくできませんでした。

手で切り出します。

直したら test を流してエラーがないことを確認します。

リスト 13.57 の課題は、投稿数のテストです。fixtures で michael は34個(4個+30個)の投稿をするように設定しているので、その数を確認しています。

最後は画像のアップロード周りです。Rails 5.2.0 では carrierwave ではなく ActionStorage を使うのがいいようなのですが、ここではチュートリアルに従います。

リスト 13.63 のテストはそのままではうまく通りませんでした。post microposts_path には param の引数が必要なので、そのように括っておきます。

development ではローカルにアップロードしますが、production では fog を使って AWS S3 にアップロードするコードになっています。せっかくなので使ってみます。

13.4.4 にしたがって AWS で設定することで、無事 production でも画像のアップロードが動作しました。

AWSのコンソールからも確認できます。