学習記録

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

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

アクションを追加する

railsにおける基本的なアクションは、 index new create update show edit destroyの7つあります。 それ以外のアクションを追加する必要があるときは、 memberとcollecrionを使うことで追加することができます。 member コレクションの各メンバーに対してア…

N+1問題

N+1問題とは SQLが必要以上に実行されてしまうとパフォーマンスが落ちるという問題です。 日常生活で例えるなら、お会計の時に品物をまとめて買うのではなく、 一つずつお金を払って、買っているような効率の悪いイメージです。 N+1問題の例 UserモデルとTwe…

carrierwaveを使って画像アップロード機能を追加する

carrierwaveとは Railsにおける画像アップロード用ライブラリです。 Uploaderクラスを別に持つから、 モデルが異なる場合でも都度記載する必要がありません。 gemfileにgem carrierwaveを追加し、bundle installを行います。 carrierwaveの使用方法 まずアッ…

Fakerを使ってダミーデータを作る

Fakerとは ダミーデータを自動生成してくれるgemです。 gemfileにgem 'faker'を記載してbundle installを行い使えるようになります。 使い方 seeds.rbにUser(10件)とTask(20件)のダミーデータを用意します。 (db/seeds.rb) 10.times do User.create!(last_na…

アソシエーション

アソシエーション Railsで作成するモデルの間に関係性を定義したい場合、 アソシエーションという機能を使うことができます。 userモデルでは、 has_many :tasks, dependent: :destroy taskモデルでは、 belongs_to :user が定義されていないとアソシエーシ…

デコレーターの導入

デコレーターとは 既存のクラスに機能を付け加えたい場合や、 既存機能に少しだけ修飾を加えたい場合に使われるパターンです。 色々なモデルで同じようなメソッドを使いたいときに、 userモデルでもcommentモデルでも定義していたら手間です。 またモデルで…

flashメッセージを表示する

flashメッセージとは Webサービスにて何かの処理を行なった際、 それが正しく行われたかをユーザー側で確認できるよう、 メッセージで表示させるための機能です。 例えば、ログインが成功しましたよ、失敗しましたよ、 などのメッセージを表示することでユー…

i18nによる日本語化対応

i18nとは Railsではさまざまな言語に対応するために、このgemがデフォルトで導入されています。 gemを導入することで、gem内部の一般的なメッセージについての日本語での国際化設定ファイルを参照するようになります。 なのでconfig/locals/ja.ymlというファ…

sorceryを使ってログイン機能を実装する

sorceryとは Railsに認証機能を実装するためのライブラリです。 認証機能とは、システムへのログインやユーザの有効性確認を行うための機能のことを言います。 同じように認証機能を提供してくれているものとしてdeviseなどがあります。 sorceryの使い方 ま…

RailsでBootstrapを導入する

Bootstrapとは Railsにはデフォルトで特定のデザインを含んでいません。 そのため見栄えの良いアプリケーションを作るには、一から自分でデザインしなければいけません。 Bootstrapというフロントエンドワークを使えば、手軽に見栄えの良いページを作ること…

アセットパイプライン

アセットパイプラインとは JavaScript、CSS、画像のリソース(アセットとよぶ)を最小化または圧縮して効率よく扱うための仕組みです。 アセットパイプラインはsprockets-railsというgemによって提供される機能で、デフォルトで有効になっています。 ①高級言語…

マニフェストファイル

マニフェストファイルとは どのファイルを読み込むのかをまとめたファイルのことをいいます。 HTMLでは、そのページで必要となる読み込みファイルを、 application.html.erbファイル内のに記載します。 <head> <%= stylesheet_link_tag 'application', media: 'all</head>…

layoutファイル

layoutファイル アプリケーション全体で変わらないものを記述しておくファイルです。 変わるものは個別のファイルに記述し、 表示するときにはその二つのファイルを足し合わせて出力するというのがrailsの基本です。 通常このファイルは、app/views/layouts…

rails generateで生成されるファイルの設定

rails generateコマンド rails newコマンドで作成したrailsのアプリケーションの中に、 必要な関連ファイルを自動生成してくれるコマンドです。 このコマンドを実行した後に不要なファイルを一つずつ消去していくのは面倒なので、 最初から指定ファイルを自…

Active Recode(自分用メモ)

基礎編前の課題で、忘れていたこと、知らなかったことなどのまとめ。 複数レコードを一括削除したい場合は、destroy_byまたはdestroy_allを使える。 # Davidという名前のユーザーを検索してすべて削除 User.destroy_by(name: 'David') # 全ユーザーを削除 Us…

findとfind_by

find 各モデルをidを検索キーとしてデータを取得するメソッド。 id以外の条件で検索不可。 存在しないユーザーを指定すると、例外が発生する。 (ActiveRecord::RecordNotFound) User.find(1) find_by 各モデルをid以外で検索するメソッド。 idでも検索可能。…

authenticateメソッド

authenticateメソッドは、 has_secure_passwordメソッドをユーザーモデルで呼び出すだけで使えるようになるメソッド。 authetnticateメソッドはパスワードを引数として使う。 誤ったパスワードを渡されるとfalseを返す。 正しいパスワードを渡されるとtrueを…