【Rails】モデルに外部キーを設定する方法とよく起こるエラー内容について

2022年2月16日 09:45
はじめに Railsでモデルに外部キーを設定する方法について説明します。 モデルに外部キーを設定する リレーションシップ 今回は1つのブログ記事は複数のコメントを持つ1対多のリレーションシップを例に説明します。現在はArticleモデルのみ存在し、外部キーとしてArticleモデルのIDを持つCommentモデ ...

【Rails】Capybaraのfill_inメソッドを実行すると「既存レコードの内容+指定した内容」がセットされる事象の原因と対処【RSpec】

2022年2月5日 11:17
はじめに RSpec + Capybaraを使用して、Railsアプリの統合テストを実装しています。とあるモデルの編集画面において、入力フォームの内容を書き換えた上で送信し、レコードが更新されることを確認します。 入力フォームの内容を書き換えるにはCapybaraのfill_inメソッドを使います。 rb fi ...

【Rails】GitHubのセキュリティアラートで発見された脆弱性を解消する方法

2022年1月16日 14:01
はじめに GitHubにはセキュリティアラートという機能があります。セキュリティアラートはリポジトリに含まれるライブラリやパッケージの脆弱性を定期的にチェックし、脆弱性のあるライブラリやパッケージが発見されたらアラートで知らせてくれるという機能です。 本記事では、GitHubのセキュリティアラートで発見された脆 ...

【Rails】devise-two-factorを使った2段階認証の実装方法【初学者】

2022年6月16日 18:22
はじめに Railsアプリで2段階認証を実装するには、「rotp」というGemを使う方法の他に、「devise-two-factor」というGemを使う方法があります。「devise-two-factor」はその名の通り、IDとパスワードによる認証を実装する「devise」というGemの拡張機能です。 本記事で ...

【Rails】rotpを使った2段階認証の実装方法【初学者】

2022年6月16日 18:22
はじめに 昨今はIDとパスワードによる認証だけでなく、ワンタイムパスワードによる2段階認証を導入するWebアプリが増えてきました。Railsで作成したWebアプリでも、IDとパスワードによる認証に加えて2段階認証を導入するニーズが高まっています。 本記事では、IDとパスワードによる認証に加えて、「rotp」とい ...

【Rails】deviseを使った認証機能の実装【初学者】

はじめに Railsアプリに認証機能を導入するには「devise」というGemを使う方法が最も簡単です。「devise」は認証に係る機能をほとんどコードを書くことなく実装できる反面、処理がブラックボックス化されており、全容が把握しづらいというデメリットがあります。Railsで初めて認証機能を導入する場合、まずは ...

【Rails】IDとパスワードによる認証機能の実装【初学者】

2022年6月16日 18:21
はじめに 大抵のWebアプリでは、ユーザー登録/解除、ログイン/ログアウトといった認証機能を持っています。Railsには簡単に認証機能を導入できる「device」というGemが用意されています。「devise」は多くのRailsアプリで使われている実績のあるGemですが、「devise」を使わなくても比較的簡単 ...

【Rails】Railsプロジェクトの新規作成【初学者】

はじめに Ruby on Rails(または単にRails)は、Rubyというプログラミング言語で設計・開発されたWebアプリケーションフレームワークです。一般的に、Webアプリケーションをイチから作成するには膨大な量のコードを書く必要があります。Webアプリケーションフレームワークは、Webアプリケーション開 ...

【CSS+JS】メニューアイコンの一種、ベントーメニューの実装方法(アニメーション付き)

2021年10月19日 14:56
はじめに メニューアイコンの中ではハンバーガーメニューが有名だと思いますが、その他にもいろいろな種類があって、それぞれに名前もつけられています。 <a class="gallery" data-group="gallery" href="https://i.imgur.com/zTufFAS.jpg"><img ...

【CSS+JS】メインコンテンツの裏から現れるフッターの実装方法

2021年10月18日 13:58
はじめに オシャレなサイトなどでたまに見かける「メインコンテンツの裏から現れるフッター」の実装方法について説明します。 サンプル <iframe height="392" style="width: 100%;" scrolling="no" title="Untitled" src="https://code ...