selfについて

selfについて わかりやすいサイトがあったので、参考にしつつメモする Ruby - 【Ruby】selfの意味が分からない|teratail まず「レシーバー」について str = "Ruby" => "Ruby" str.downcase => "ruby" downcaseというメソッドはローカル変数strが指しているS…

initializeメソッドについて

initializeメソッド クラスの中で宣言して使用する。 オブジェクトが作成されるときに自動的に呼び出される。 Rubyのinitializeメソッドの書き方を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン 【Ruby】newメソッドとinitializeメソッドの使い…

セッター レシーバー <attr_reader>    <attr_writer> <attr_accessor>

セッター レシーバー ちゃんとまとめたことがなかったのでまとめる。 結論 reader = ゲッター writer = セッター と呼ばれている。 attr_reader attr_writer を使用する。 attr_accessor ↑2つ使用するときに使用する。 まとめ Personクラスがあったとして 1.…

checkboxについて

checkbox checkboxについてよく理解していなかったのでまとめる 書き方 3つの方法がある 1.check_box_tag(関連するモデルがない場合) 2.check_boxメソッド(関連するモデルがある場合) 3.collection_check_boxes(多対多のリレーションのモデルを表現する場合)…

delegateについて

delegate delegateについてよく知らなかったのでまとめる (前提) Userクラスと Profileクラスがあるとする。 Userクラスは関連付けとしてProfileクラスを持っている。 Profileクラスにはnameカラムがあり参照できる。 class User < ApplicationRecord has_on…

ポートフォリオ作成時に調べたことまとめ Rspec tr td テーブルを指定する

Rspec tr td テーブルを指定する コード (index.html.erb) <table class="table table-dark table-responsiv"> <thead> <tr> <th scope="col">着用メンバー</th> <th scope="col">ブランド</th> <th scope="col">値段</th> <th scope="col">アイテム</th> <th scope="col">画像</th> <th scope="col">詳細</th> <th scope="col">編集</th> </tr> <% @articles.…</thead></table>

ポートフォリオ作成時に調べたことまとめ Rspec attach_file

Rspec attach_file 画像がアップロードされたかテストしたい コード (edit.html.erb) <%= form_with model: @article, url: admins_article_path(@a rticle.id), local: true do |f| %> <div class="card-body-text mb-5 text-center"> <%= f.label "<image>"%> <%= f.file_field :images, name: 'article[images]</image></div>…

ポートフォリオ作成時に調べたことまとめ Rspec FactoryBot ActiveStorage

Rspec FactoryBot ActiveStorageを使用した画像を紐付ける方法 (factories/article.rb) FactoryBot.define do factory :article do sequence(:price) { |n| "¥10000#{n}-" } sequence(:brand) { |n| "test_brand_#{n}" } sequence(:item) { |n| "test_item_#…

ポートフォリオ作成時に調べたことまとめ Rspec check_box

Rspec作成時のcheck_boxについて <まとめること> ・checkの付け方外し方 ・checkがついているかの確認の方法 前提とするコード (edit.html.erb) <%= form_with model: @article, url: admins_article_path(@article.id), local: true do |f| %> <div class="card-body-text mb-5 text-center"> <%= f.field</div>…

ポートフォリオ作成時に調べたことまとめ presence: true null: false

「presence: true」 「null: false」 違いについて まず結論から... nullを許可したくない場合は、テーブルもモデルもnull不許可にしておく! <まとめ> NotNull制約 テーブルのmigartionファイル自体に「null: false」を記載する →nilは拒否するが空文字は拒…

ポートフォリオ作成時に調べたことまとめ 正規表現

正規表現 Twitter APIを使用してtweetを取得し、「値段」「ブランド」「アイテム名」を保存したい 例えばtweetでこのようなツイートを取得したとする。 前提としてtextに以下の内容を代入しておく。 【GUCCI】インターロッキングGシルバー¥40,700- tax in 【…

リモートリポジトリのURLを変更したい

Githubでcloneしたものを自分のリポジトリに追加したい <自分のGithubで新しいリポジトリを作成済み> 1.今設定されているURLの状況を確認する $ git remote -v origin https://github.com/ユーザー名/リポジトリ名 (fetch) origin https://github.com/ユーザ…

form object スコープ あいまい検索について

ヘッダー部分の検索フォームから投稿を検索できる機能を実装する ・投稿フィールドで投稿のtitle,bodyの曖昧検索 ・コメントフィールドでコメントのbodyの曖昧検索 ・ユーザーフィールドで投稿のユーザー名の曖昧検索 ・それぞれのフィールドはAND条件となる…

指定するurlが存在するかを確認する

会員登録時に、登録しようとしているnameがGitHubのアカウント名として存在しているかどうかのチェックを行いたい ほとんどの内容はこのサイトを参考にさせていただきました。 Check if URL exists in Ruby - Stack Overflow どうやって判別するか... Github…

wheneverを使用して記事数一覧のメール送信

2021.6.10 応用編10 <目標> wheneverを導入して毎日am9:00に下記の内容を管理者にメールで送信させるメールの件名には「公開済記事の集計結果」と設定 管理者のメールアドレスにはadmin@example.comを設定 流れ 参照 ActionMailerとWheneverの使い方とメール…

トップ画面をスライダー形式に変更

2021.6.2 応用編9 <目標> ブログのトップ画像は複数枚の画像が一定間隔で切り替わるようにする 切り替わる画像は、管理画面でアップロードと削除ができるようにする faviconやog-imageに関しても、個別に削除できるようにする main_imagesには、複数の画像…

埋め込みメディアタイプにTwitter追加

2021.6.1 応用編8 APIではなくローカルで作成する。ローカルで作成することによって、処理時間の短縮を狙う。 【Twitter】埋め込み処理をAPIに投げずにローカルで行う - mizuff_diary <目標> ツイートのURLを登録して動的にツイートを埋め込めるようにする…

アイキャッチの表示サイズ・位置指定

2021.5.27 応用編7 アイキャッチ 投稿ページの記事タイトルの下に表示される画像のこと Active Storage gem について ファイルアップロードを簡単に実装できるgem。rails 5.2から導入されている。 使い方 1 gemfileに追加インストール後、 $ rails active_s…

「<<」について

「<<」について この二箇所「=」と「<<」なぜわざわざ使い分けているのか理解したい。 trait :with_author do transient do sequence(:author_name) { |n| "test_author_name_#{n}" } sequence(:tag_slug) { |n| "test_author_slug_#{n}" } end after(:build…

Pundit 権限管理

2021.5.24 応用編6 <現在> Punditは入っている <目標> 権限設定の記述を見つけ、ライターにタグ・著者・カテゴリーの一覧表示・編集・削除を出来ないようにする。 権限エラーが発生した際に、403エラーのページを表示させる(403.htmlは、public配下に新たに…

form object 検索機能を追加する

2021.5.21 応用編5 検索機能を追加する form objectを使用して、検索機能を作る Active Model 、scopeも使用していく <現在> ・セレクトボックスのカテゴリー検索 ・フリーワードによるタイトル検索 <目標> ・著者、タグをセレクトボックスにより選択できる…

単一テーブル継承 type{}

2021.5.18 課題4でのFactoryBotのtypeが何なのか理解したい。 参照 【Rails】単一テーブル継承(STI)について - Qiita (spec/factories/categories.rb) FactoryBot.define do factory :category do type { 'Category' } #ここの部分 sequence(:name) { |n| "…

&:メソッド名 について

2021.5.18 &:メソッド名について 応用編4でこの「&:」が何なのか気になり調べてみたので、忘れないようにまとめてみる。 Article.publish_wait.past_published.find_each(&:published!) @user = User.new(user_params).tap(&:valid?) なかなか、調べてもヒ…

応用編4

2021.5.7 記事ステータスの追加 記事を作成、公開する 公開 公開待ち1時間ごとに指定可能 下書き 下書きにし、公開日を指定し、更新ボタン、公開ボタン→公開待ち 公開日を過去の日に設定すると自動的に公開になる rakeタスク Rakeとはrubyで処理内容を定義…

応用編3

2021.5.6 テキスト挿入時のバグ修正 テキストを入力せずにプレビューを確認すると、no implicit conversion of nil into Stringというエラーが表示される。 (↓元々) def build_body(controller) result = '' article_blocks.each do |article_block| result <…

応用編2

2021.5.6 パンくずの設定 パンくずとは パンくずリストを省略した表現で、ユーザーが今WEBサイト内のどの位置にいるのかを視覚的に分かりやすくさせるために上位の階層となるWEBページを階層順にリストアップし、リンクを設置したリストのこと。 メリット ユ…

応用編1

2021.05.04 応用編1 slim ・< >や閉じタグなどを削り、最低限必要なものだけを残した、非常にシンプルなテンプレート言語 ・軽量 ・HTMLがより簡潔に記述できる 導入方法 Gemfileにslim-railsを記述bundle install を実行後viewファイルの拡張子をhtml.slim…

応用編 環境構築

2021.4.29 Redisとは ・無料で使用できるDB管理システムの一つ ・高速にデータを処理することができる 参照 初心者による初心者のためのRedis解説 - Qiita Homebrewを使用してRedisをインストールする Homebrew: OS環境におけるいわゆるパッケージマネージャ…

RSpec編4

2021.4.29 時間がかかってしまった...。 調べ方が難しかった。 trait使い方 参照 FactoryBot Traits - Qiita FactoryBotでtraitを使おう - Qiita 今回の場合 (spec/factories/task.rb)に定義する。 FactoryBot.define do factory :task do title { 'Task' } …

RSpec編3

2021.4.21 ログイン処理を共通化する supportディレクトリ作成 % mkdir support supportディレクトリ下にファイル作成・編集 % touch login_macoros.rb (spec/support/login_macros.rb) module LoginMacros def login_as(user) visit root_path click_link '…