2020-01-01から1年間の記事一覧

【Rails】日時フォーマット(lメソッド)

はじめに Viewにcreated_atのような日付を出力すると、 Tue, 30 Jul 2020 00:12:12 +0000 のような日本人には見慣れない表示がされます。この記事ではこれを日本人が見やすい表示に変更する流れを紹介します。 タイムゾーンを日本時間にする まず、タイムゾ…

【Rails】検索機能(ransack)

はじめに ransackの実装の流れをメモしておきます。 gemのインストール Gemfile gem 'ransack' $ bundle install Controller def index @q = Board.ransack(params[:q]) @boards = @q.result(distinct: true).includes(:user).order(created_at: :desc).page…

【Rails】ページネーション(kaminari)

はじめに ページネーションを実現させるgem(kaminari)の実装方法について書いていきます。 gemのインストール まず、今回使用するgem kaminariをインストールしましょう。 Gemfile gem 'kaminari' gemのインストール bundle install 基本的な使い方 コントロ…

【Rails】簡単なajax処理 (remote true)

はじめに 前回の「【Rails】ブックマーク機能の実装」の発展で、これをajax処理で実現していきます。 ajaxの実装 Railsにおいてajax通信を実装する場合、主に二つの方法があります。 remote: trueを指定する方法 JSファイルに任意のタイミングでajax処理を発…

【Rails】ブックマーク機能の実装

はじめに 今回、Railsで初めてブックマーク機能を実装したので、ブログにまとめていきます。 今回したいこと 掲示板の⭐️マークをクリックすると、 ⭐️マークの色が変わって、ブックマーク登録されるという機能を実装していきます。 ER図 Bookmarkモデルを中間…

【Rails】form_withについて(ネスト)

はじめに ルーティングがネストしている時の、form-withの書き方を備忘録として残しておきます。 ルーティング(ネスト) resources :boards do resources :comments end createアクション ネストしたモデルのコメントをcreateするとき 、 /boards/:board_id…

【Rails】Railsの基準時刻(タイムゾーン)について

はじめに 日本とアメリカに時差があるように、国や地域ごとで基準時刻というものが違います。日本で使われている時間は「日本標準時(JST)」と呼ばれています。Railsでは、デフォルトで協定世界時(UTC)」の時間で設定されているので、日本で使用するアプリの…

【Rails】seedファイルとfakerについて

はじめに Railsで開発するときに、処理が正しく動いているか確認するためにダミーのデータをデータベースに入れることが多くあります。そのようなデータを用意する仕組みとしてRailsではseeds.rbファイルを使用します。 seedファイル seeds.rbの場所はdb/see…

【Rails】N+1問題について

はじめに N+1問題とは、ループ処理などでデータベースからデータを取り出す際に、必要以上にSQLが発行され、動作が悪くなってしまう問題のことです。 例えば 例えば、掲示板の一覧を表示したいとします。 下記の設定でboardモデルから全てのレコードを取得し…

【Rails】Carrierwave(gem)について

はじめに 画像アップロードのGem Carrierwaveの導入方法を記録しておきます。 手順 アップローダーを作成し、 それをモデルで使用するように宣言した上で、 実際にアップロード作業を行う Gemfileの設定 gem 'carrierwave' $ bundle install アップローダー…

【Rails】エラーメッセージ

はじめに エラーメッセージとはform_withなどで、入力内容が保存できない場合に、ユーザー保存できない理由を表示するものです。 このような表示見たことありますよね。 今回は、このエラーメッセージを表示する方法について記していきます。 まずはバリデー…

【Rails】decoratorについて(Draper)

decoratorとhelperとの違い Decorator・・・特定のモデルに関連した描画ロジックを実装 helper・・・モデルから独立し直接関係していない描画ロジックを実装 使用方法 Gemfile gem 'draper' コマンド $bundle install モデルと紐付けて作る $rails generate …

【Rails】flashについて(bootstrap対応)

はじめに flashメッセージとは、Webサービスで何かの処理を行った際に、それがどのような処理になったかをユーザー側にメッセージとしてお知らせするためのものです。 それでは、flashメッセージの実装方法について記していきます。 まず、使い方 コントロー…

【Rails】i18n による日本語化対応

はじめに Railsのi18nによるアプリの日本語化対応の仕方を備忘録として残しておく。 基本的な設定 まず、言語設定とロケールファイルの読み込み設定を行う。 # config/application.rb # 言語設定 この設定を行なっていないと日本語を表示してくれない config…

【Rails】sorceryについて

はじめに sorceryとは、Railsに認証機能の実装を行うためのライブラリです。 同じように認証機能を提供してくれているものとしてdeviseなどが挙げられますが、sorceryの方がよりシンプルで、カスタマイズ性に富んでいるという特徴を持ちます。 sorceryでのロ…

【Rails】gemの使い方

はじめに gemがどのような流れで使われるのか、現時点でわかっていることをメモしておきます。 gemの使い方 1.ほしいgem(機能)を探す -------------------------- 2.rubygemsのサイトでそのgemを検索して、 公式にあるReadmeに読んで書いてある設定方法を確…

【Rails】マニュフェストファイルについて

はじめに Railsに出てくるマニュフェストファイルについて調べてみました。 マニュフェストファイルとは? Railsにおけるマニフェストファイルとは、簡単に言うとCSSをひとまとめにしたapplication.cssファイルとJavaScriptをひとまとめにしたapplication.js…

【Rails】generate コマンドで生成されるファイルを制限する設定

はじめに rails generateコマンドはさまざまなファイルを自動生成してくれるとても便利なコマンドですが、「このファイル使わないんだよな〜」または「なんのファイルを生成しているかよくわからない」ってことはありませんか。そこで、今回はgenerateコマン…

【Rails】ルーティングの設定 resources

はじめに resourcesの名前付きルートがパッと頭に浮かばない時がありましたので、表にまとめました。 resourcesでCRUDのルートを定義する resourcesはCRUDで必要な7つのルーティングを一括で定義してくれます。 HTTPメソッド URLパターン URLパターン名 ヘ…

【Rails】form_withについて(scopeオプション)

はじめに form_withでscopeオプションがあるとないとでは、データの送られ方がどう違うの気になったので調べてみました。 scopeなし コントローラーで受け取ったparams(値)を見てみると、 <ActionController::Parameters {"authenticity_token"=>"nPZ6KTkVEA3QFWhaPDV30Bf6VjRbyey//NPjvjbDYoTcAKLOAsZGxXBJcknlsYm</actioncontroller::parameters>…

【Rails】Strong Parametersについて

Strong Parametersとは? ユーザーが送信したデータをまるごと渡すことは危険であるため、許されたデータだけを入れるようにするやり方。または、セキュリティを向上させる方法。 例えば、 フォームから渡されたname,email,passwordのデータがあるとします。…

【Rails】form_withについて

はじめに form_withがどのようなHTMLに変換されてコントローラーに渡されているのか気になったので調べてみました。 form_withはどのようなHTMLに変換されているのか? まず、元のform_withのソースです。 こちらが先ほどのform_withがHTMLに変換されたもの…

【Git】Gitコマンド4(ブランチとマージのコマンド)

ブランチとマージのコマンド ブランチを新規追加する ・git branch ブランチ名 ブランチの一覧を表示する ・git branch #全てのブランチを表示する ・git branch -a ブランチを切り替える ・git checkout 既存のブランチ名 #ブランチを新規作成して切り替え…

【Git】Gitコマンド3(GitHubとやり取りするコマンド)

GitHubとやり取りするコマンド リモートを表示する ・git remote #対応するURLを表示 ・git remote -v リモートリポジトリを新規追加する ・git remote add リモート名 リモートURL リモートから情報を取得する(フェッチ) ・git fetch リモート名 リモート…

【Git】Gitコマンド2(変更を元に戻すコマンド)

変更を元に戻すコマンド ファイルへの変更を取り消す ・git checkout -- ファイル名 ・git checkout -- ディレクトリ名 #全変更を取り消す ・git checkout -- . ステージした変更を取り消す ・git reset HEAD ファイル名 ・git reset HEAD ディレクトリ名 …

【Git】Gitコマンド(Gitの基本的なコマンド)

Gitの基本的なコマンド ローカルリポジトリの新規作成 ・git init Gitリポジトリのコピーを作成する ・git clone 変更をステージに追加する ・git add 変更を記録する ・git commit 現在の変更状況を確認する ・git status 変更差分を確認する ・git diff ・…

【Web】WebAPIとは?

アプリケーションがWebサーバーの機能を利用するためのインターフェースのこと。ユーザーがWebブラウザから操作しなくてもアプリケーションが直接Webサービスが利用できる。

【Web】Restfulとは?

「RESTの原則」を守って設計されたWebシステムのこと REST・・・Webサービスの設計モデル 【RESTの原則】 ・統一インターフェース あらかじめ定義・共有された方法(WebであればHTTP)で情報がやりとりされる。 ・アドレス可能性 すべての情報が一意なURLの…