Action Mailerをつかいユーザー登録を行なった際にメール送信するようにする

Action Mailerとは Action Mailerを使うと、アプリケーションのメイラークラスやビューでメールを送信することができます。メイラーの動作はコントローラときわめて似通っています。 引用: Action Mailer の基礎 - Railsガイド メールを送信する際によく使わ…

letter_opener_web実装方法

letter_opener_web letter_opener_webを導入すると、送信されたメールをwebサイトで確認することができます。 ログイン時のパスワードリセットなどなど、RailsのMailerと組み合わせて使われるケースが多いです。 実装方法 Gemfile Gemfileに設定を行っていき…

has_many_attachedを使いUnpermitted parameter が発生した

Active Storageを使用して、複数のファイルを1つのレコードに添付する実装を行っていてエラーに遭遇したのでメモしておきます。 最初に結論 複数のファイルを1つのレコードに添付する場合は、permitメソッドを下記のように使う必要がありました。 params.per…

ポリモーフィック関連付けとは

動機 Railsで記事に埋め込み機能を実装する際に、ポリモーフィック関連付けが出てきたので、理解を深めるためにも備忘録としてメモを書いていきます。 以下のモデル構成で説明していきます。 # article_block.rb class ArticleBlock < ApplicationRecord bel…

ActiveModelとは

ActiveModelとは ActiveModelとはActiveRecodeモデルクラスの便利な機能を普通のクラスで実現することをサポートしてくれるモジュール郡です。 例えば一括代入、バリデーション、コールバックが例です。 「データベースに直接紐付かないけれども、フォームの…

ActiveModelとは

ActiveModelとは ActiveModelとはActiveRecodeモデルクラスの便利な機能を普通のクラスで実現することをサポートしてくれるモジュール郡です。 例えば一括代入、バリデーション、コールバックが例です。 「データベースに直接紐付かないけれども、フォームの…

find_eachメソッドとは

find_eachメソッドは、分割してレコードを取得して1件ずつ処理します。 メモリの消費量を抑えることができるため、 大量のレコードをループ処理する際に使われます。 デフォルトでは、レコードを1000件ごとに取得して処理を実行します。 構文 find_eachメソ…

assign_attributesメソッドとは

Railsを学習していてassign_attributesメソッドを使う必要があり、調べてみたので、忘れないよう議事録として残そうと思いました。 結論 assign_attributesは、複数の属性の値を更新するためのメソッドです。「DBに保存したくないけど値を更新したい」時に使…

ransackを使い検索機能を実装する

Ransackとは ransackとは検索機能を実装するためのgemです。 検索に必要な機能を簡単に実装することができます。 検索機能を実装する利点 一覧画面などでは表示している情報が多いため、必要な情報を探すのに時間がかかってしまいます。 そこで検索機能を実…

ページネーション kaminari

kaminariとは? Railsでページネーションを利用するためによく利用されているgemのことです。 ページネーションとは? ページネーションとは、レコード件数が一定数を超えた場合に複数のページに分割して表示するようにすることです。 一覧画面ではほとんど…

Ajax jQuery

今回はコメントの投稿と削除をAjax化する際に、 jQueryを使って実装しました。 しかし、jQuery自体あまり理解していなかったのでまとめていきます。 jQueryとは jQueryとは、Javascriptのプログラミングでよく行われる定型的な処理を書きやすくしてくれる、…

Ajax

今回実装したい機能 Ajaxを用いてブックマークした際、ボタンの切り替えを非同期で行う。 調べたこと Ajaxとは何か? 同期通信、非同期通信の違い Ajaxの実装方法 Ajaxとは何か? Ajaxとは、Asynchronous JavaScript + XML の略で、非同期通信と呼ばれる通信…

has_many throuth

ユーザーのお気に入りした掲示板を取得したいとき、中間テーブルは外部キーしか保存されていないので、 mapメソッドを使い、変換する作業が必要です。 mapメソッドとは mapメソッドは、配列の全要素にブロック中の処理で変換を行なった、 新しい配列を作る。…

バリデーション uniqueness

ブックマーク機能を作る際、unique制約が必要だったので理解を深めるためにまとめます! なぜunique制約が必要なのか ブックマーク機能は、どのユーザーが、どの掲示板をブックマークしたという関係性を保存することです。 解除する際は保存したデータを消す…

タイトルを動的に表示する

カスタムヘルパーを使い、動的にタイトルを表示する。 今回実装したいこと 下の写真のようにタイトルを表示したい 今回つまづいたところ カスタムヘルパーの定義 三項演算子とは? empty? メソッドとは カスタムヘルパーの定義 module ApplicationHelper def…

初アウトプット

初アウトプット 初めてのアウトプットになるので暖かい目で見ただければ幸いです。 コメント機能を実装したく、アソシエーションのどこから手をつけていいのか分からなかったので、アウトプットして理解を深めていこうと思います。 アソシエーションとは モ…