学習記録

アウトプット用に作りました

2021-04-01から1ヶ月間の記事一覧

RailsAdminを使って管理者機能を実装

RailsAdminとは 管理画面をテンプレート的に作成できるgemの一つです。 railsにはたくさんの管理画面を実装できるgemがありますが、中でも簡単でデザインがとてもスタイリッシュだったので、RailsAdminのgemを使ってみることにしました。 参考 : rails管理画…

FactoryBotのtransientとコールバック

transientとは transientは実際に作成するデータと直接関係無い新しいattributeを定義する機能です。そこで定義されたものは実際のmodelにはセットされません。追加データとして利用するのが一般的です。 FactoryBotで使うコールバックとは 下記4つのコール…

CSVを使ってrails db:seedで初期データを登録

CSVとは CSVとは「カンマで値を区切ったもの」が入っているファイルで、カンマ区切りファイルともいいます。ファイルの拡張子は .csvです。実際のファイルの中身は次のようになっています。 このファイルとrails: db:seedを使って大量の初期データをデータベ…

STI(単一テーブル継承)について

STI(単一テーブル継承) 単一テーブル継承は、オブジェクトの継承関係を1つのテーブルで表現します。テーブルにはサブクラスを判断するためのカラム(type)を持たせます。 もしも同じカラムをもつテーブルが複数ある場合に、一つのテーブルにまとめて管理す…

Active Recordのattributeを使った更新メソッド

attributeとは 属性のことです。必要に応じて、既存の属性の型をオーバーライドすることができます。 attribute更新メソッド これからさまざまな更新メソッドを見ていきたいと思います。 単一のattributeを更新する 指定した一つのattributeのみを変更したい…

応用編課題8で参照したサイト

Twitterの公式、埋め込みに関して ウェブサイトやブログにツイートを埋め込む方法 Twitter Publish Twitterの埋め込み TwitterのAPIを使わずに任意のツイートを埋め込む方法 - Sakura scope 【Twitter】埋め込み処理をAPIに投げずにローカルで行う - mizuff_…

一時間ごとにRakeタスクを実行する

今回行いたいことは、公開待ちになっているブログの記事を公開日時になったら自動で公開してくれるような実装をすることです。 ここで使う機能として3つあります。この3つを使って実装していくので少しややこしく感じますが、一つずつ説明していきたいと思い…

gretelを使ってパンくずリストを実装

パンくずリストとは ユーザーがサイトを使用する際、自分が今サイトのどの位置にいるのかというのを瞬時にわかるようにするための表示のことを「パンくずリスト」と言います。「パンくず」と省略して使われています。 Railsアプリケーションにおいてパンくず…

seed_fuを使って初期データを作成

seed_fuとは すでに存在しているデータの中の変更したいレコードだけを更新することができたり、ファイル単位でデータを作成することができます。 データを作成するrailsの仕組みとしてseeds.rbファイルに記入する方法がありますが、この方法だとデータの変…

応用編課題7で参照したサイト

has_one_attachedについて Active Storage の概要 - Railsガイド 横幅のカラムに対してのバリデーションについて 3. バリデーション(3) | TECHSCORE(テックスコア) [Rails][validation]integerに対する最小値や最大値などの設定 - Qiita 画像の位置を変更す…

別タブで開いた画面のテスト / ApplicationHelperのメソッドをRSpecでも使用

別タブで開いた画面をテストする方法 下記のコードのようにUserの一覧ページからUserの詳細ページに移るときにtarget: :_blankを使って別タブで表示するような実装をしている部分のテストを書いていきます。 <%= link_to "詳細", users_path(@user), target:…

System Spec

システムスペックとは 複数のモデル、コントローラを統合したプログラム全体の挙動をチェックする統合テストです。またJavaScriptを利用する画面のテストを書くこともできます。 システムスペックには下記の機能がデフォルトで準備されています。 selnium-we…

応用編課題6で参照にしたサイト

punditのReadMe GitHub - varvet/pundit: Minimal authorization through OO design and pure Ruby classes punditについて punditを使ってみる - maru877’s blog Pundit + Railsで認可の仕組みをシンプルに作る - Qiita Authorization of Pundit - Qiita 40…

Model Spec

モデルスペックに含めるテスト 有効な属性で初期化された場合は、モデルの状態が有効になっていること。正常系のテスト。 バリデーションを失敗させるデータであれば、モデルの状態が無効になっていること。異常系のテスト。 クラスメソッドとインスタンスメ…

FactoryBotについて

FactoryBotとは テストデータ生成のためのデータライブラリのことです。 ここで作成したデータはテストケースで呼び出すことができます。 FactoryBotの使い方 GemFileにFactoryBotを追加します。 開発環境とテスト環境のみで使うものなので、下記のように指…

応用編課題5で参照にしたサイト

ActiveModelについて Active Model の基礎 - Railsガイド form_objectについて form objectを使ってみよう - メドピア開発者ブログ ActiveModel::Attributesの使い方 [Rails] ActiveModel::Attributesの使い方(配列化やネストしたhashの取り扱いなども) - Qi…

応用編課題4で参照にしたサイト

enumについて Rails enumについてまとめておく - Qiita 【Rails】enumチュートリアル | Pikawaka - ピカ1わかりやすいプログラミング用語サイト 時間選択の部分、一時間おきに選択できるようにする。 Rails で datetimepicker を使用する手順 - blog @arfyas…

応用編課題2で参照にしたサイト

パンくずリストのgretelの使い方について GitHub - kzkn/gretel: Flexible Ruby on Rails breadcrumbs plugin. 【Rails】gretelを使ってパンくずリストを作成しよう | Pikawaka - ピカ1わかりやすいプログラミング用語サイト

応用編課題1で参照したサイト

application_controller.rbに記載のあったprotect_from_forgery: :exceptionについて protect_from_forgery with: :exceptionについて調べたまとめ - Qiita bundle exec rails db:seed_fu とは railsで初期データを入れる(seed-fuの使い方) - Qiita uuidにつ…