Capybaraでfontawesomeのiconリンクをテストする
背景 仮にブログ対してのブックマーク機能をテストする。 ブックマーク関係の erb ファイル内容は下記で <div id="js-blog-bookmark-<%= blog.id %>"> <% if current_user.bookmarked?(blog) %> <%= render 'blogs/bookmarks/unb...
背景 仮にブログ対してのブックマーク機能をテストする。 ブックマーク関係の erb ファイル内容は下記で <div id="js-blog-bookmark-<%= blog.id %>"> <% if current_user.bookmarked?(blog) %> <%= render 'blogs/bookmarks/unb...
今回のエラーはGithub Actionsを使ったCI環境で出たエラー。 背景には、Tailwindとsassの非互換問題(incompatible)があることがわかった。 背景 Tailwindcss-railsの公式説明によると、TailwindがモダンなCSS構文を使っているけど、Sassが最新のCSS構文をまだ理解できていないため、アセットパイプラインでtailwindのcss構文...
状況 ローカルや本番で問題なく動いているけど、RSpec テストが通ったり、通れなかったりする状況があった。 test log を確認したところ、個別 example の動きがおかしくなったりしている。 Started POST "/questions/1/answer?result=good" for 127.0.0.1 at 2022-09-02 23:25:25 +0900 Pr...
今回は東京都知事杯ハッカソンに参加して、二日間のチームワークの下で、なんと投票マッチングアプリのMVPが出来上がった。 ただ、小さいアプリだけどめっちゃSQL走っていると気がついたので、もっと改善できないかなと思った。 コード全体をもう一度整理して、特にSQL大量発行する箇所に目を留めた。 ユーザーと政党テーブル、質問テーブルを紐付けるところ ユーザーの選択回答を保存するところ ...
今回のFormObjectでうっかりbodyのタイプをtextに指定してしまい、Unknown type :textのエラーが出た。 調べたら、ActiveModelではtextタイプをサポートしてないことがわかった。 サポートしているタイプはドキュメントでの明確な説明は見つからなかったが、ソースコードでのファイル名を見れば何とか推測できる Rails APIでのファイル名リストを見ると、...
応用篇でのtaxonomiesテーブルは何なんだって気になってて、調べてみたら、単一テーブル継承(STI)で使ってるテーブルのことがわかった。 同じ親クラスから継承している複数の子モデルの情報は各自のテーブルではなく、全てを親モデルのテーブルに記入する。 各子モデルの情報はtypeコラムで標識する。 今回はauthor, category, tagの三つのモデルの情報をtaxonomie...
Capybara で system テストを行った時、can't find element'のエラーが出た。 byebugとpage.body`で確認したら、リンクをクリックした前のページに止まっていることがわかった。 調べてみたら、その原因はページ内のリンクをクリックして、新規 window/tab で開く場合は、window contextは自動切り替えがなく、前のページに止まること。...
MITのCS基礎コース「The Missing Semester of Your CS Education」についてのメモ。 Course located at: https://missing.csail.mit.edu/ What is the shell A textual interface to the system A programming environm...
SorceryのReset passwordモジュールを使って、パスワードリセット機能を実装するという課題だったが、sorceryの手順でなんとなくできたけど、メソッドの意味や流れがなかなかうまく理解できなかった。 それで補充情報を検索してみたら、gemを使わないやり方のyoutube解説動画を見つけた。 必要最小限のコードでパスワードリセット機能を作りながら、大体の流れを理解できてから...
routeの設定やcontrollerの記述だけで、viewのレンダリングやデータの渡しなどRailsが自動的に動いてくれるとはわかるけど、でもどうやってできたの?って素朴な疑問があったのでちょっと調べてみた。 面白いと感じたので、メモしておく。 URLにアクセスした後、controllerの動き 仮に/boards/indexに...