my_back_pages

Ruby / Rails / FjordBootCamp

Rails

「福岡フロントエンド勉強会#2」に参加して、発表もさせていただきました

ご縁があり、11月8日に開催された「福岡フロントエンド勉強会#2」に参加して、発表もさせていただきました。 connpass.com 発表したこと Railsのフロントエンド開発フレームワークHotwireの主要構成要素、Turboについて調べたこと・学んだことを発表させてい…

【Slim】レンダリングされるscriptタグに属性を付与しつつ、2行以上のJavaScriptを書く方法【Rails】

小さなことですがハマったのでシェアです。 やりたいこと 以下のようなHTMLを、Slimを使ってレンダリングすること。 scriptタグで記載される要素 要素のコンテンツは、Slim内で2行以上で書かれるJavaScriptコード type属性に値を指定する つまり、レンダリン…

【Rails】rails g コマンドで --force-plural オプションを使用した際の生成物を rails destroy コマンドで削除するときは、同じオプションを指定する必要がある

タイトル通りです。 --force-pluralオプションを使用して複数形を使ったモデル名のscaffoldを行う rails g scaffold JazzCafes name:string --force-pluralを実行。 ポイント --force-pluralオプションを使ったので、モデルのファイル名が複数形のapp/models…

【Rails初心者】createアクションでモデルオブジェクトの保存失敗時に、入力情報を保持したままフォームを表示することができる理由

/cats/newのフォームへの入力内容になんらかのバリデーションエラーなどがあり、@cat.saveに失敗すると、(scaffold状態のRailsアプリなら)入力内容が保持された状態でフォームが表示されます。 よくよく考えると「どんなすごい仕組みで入力内容が保持され…

【Rails】Capybaraのwindows.lastで得られるウィンドウは、必ずしも最後に開いたものにならない可能性がある

Railsのシステムテストで、別タブでページを開くボタンを押して、その先で何かを確認するテストを書きたいと思った時のメモです。 もしかしたら、思った挙動にならないかもしれないテスト click_on '別タブでページを開くボタン' # 最後に開いたタブの中でテ…

【Rails】Capybaraでvisitしたページのオブジェクトと、pageメソッドについて【Capybara】

test "ほげほげさんの記事に行ける" do article = articles(:article1) visit_with_auth "/articles/#{article.id}", 'hogehoge_san' assert_equal "#{article.title} | みんなの日記サイト", title end この最後のtitleの意味がわからなくて時間を溶かした…

【Rails】(メモ)React + Rails(API)でよく考えずに skip_before_action :verify_authenticity_token するのは危なそう

React + Rails(API)構成でのアプリ開発について学習している中で、下のようなコードと出会いました。 # app/controllers/application_controller.rb class ApplicationController < ActionController::Base include DeviseTokenAuth::Concerns::SetUserByTok…

【Rails】assert_difference の第一引数に、評価したい式の「文字列」を渡している理由

サマリ assert_differenceの第一引数には評価したい式を入れるけれど、なぜ「文字列」にして入れるのがピンとこなかった。 このメソッドは第一引数に渡した式の文字列をevalで実行するProcオブジェクトを作り、内部でそれをcallすることで評価していた。 ピ…

【Rails】Rinku で localhost:3000 をリンク化できない問題と解決法

表題通りです。 解決したいこと URLの文字列をリンク化できるgem「Rinku」でlocalhost:3000というURLをオートリンクしようとしたら反映されない。 # app/views/tasks/show.html.slim .nav.justy-content-end = link_to "一覧", tasks_path, class: 'nav-link…