2020-01-01から1年間の記事一覧
はじめに Viewにcreated_atのような日付を出力すると、 Tue, 30 Jul 2020 00:12:12 +0000 のような日本人には見慣れない表示がされます。この記事ではこれを日本人が見やすい表示に変更する流れを紹介します。 タイムゾーンを日本時間にする まず、タイムゾ…
はじめに 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…
はじめに ページネーションを実現させるgem(kaminari)の実装方法について書いていきます。 gemのインストール まず、今回使用するgem kaminariをインストールしましょう。 Gemfile gem 'kaminari' gemのインストール bundle install 基本的な使い方 コントロ…
はじめに 前回の「【Rails】ブックマーク機能の実装」の発展で、これをajax処理で実現していきます。 ajaxの実装 Railsにおいてajax通信を実装する場合、主に二つの方法があります。 remote: trueを指定する方法 JSファイルに任意のタイミングでajax処理を発…
はじめに 今回、Railsで初めてブックマーク機能を実装したので、ブログにまとめていきます。 今回したいこと 掲示板の⭐️マークをクリックすると、 ⭐️マークの色が変わって、ブックマーク登録されるという機能を実装していきます。 ER図 Bookmarkモデルを中間…
はじめに ルーティングがネストしている時の、form-withの書き方を備忘録として残しておきます。 ルーティング(ネスト) resources :boards do resources :comments end createアクション ネストしたモデルのコメントをcreateするとき 、 /boards/:board_id…
はじめに 日本とアメリカに時差があるように、国や地域ごとで基準時刻というものが違います。日本で使われている時間は「日本標準時(JST)」と呼ばれています。Railsでは、デフォルトで協定世界時(UTC)」の時間で設定されているので、日本で使用するアプリの…
はじめに Railsで開発するときに、処理が正しく動いているか確認するためにダミーのデータをデータベースに入れることが多くあります。そのようなデータを用意する仕組みとしてRailsではseeds.rbファイルを使用します。 seedファイル seeds.rbの場所はdb/see…
はじめに N+1問題とは、ループ処理などでデータベースからデータを取り出す際に、必要以上にSQLが発行され、動作が悪くなってしまう問題のことです。 例えば 例えば、掲示板の一覧を表示したいとします。 下記の設定でboardモデルから全てのレコードを取得し…
はじめに 画像アップロードのGem Carrierwaveの導入方法を記録しておきます。 手順 アップローダーを作成し、 それをモデルで使用するように宣言した上で、 実際にアップロード作業を行う Gemfileの設定 gem 'carrierwave' $ bundle install アップローダー…
はじめに エラーメッセージとはform_withなどで、入力内容が保存できない場合に、ユーザー保存できない理由を表示するものです。 このような表示見たことありますよね。 今回は、このエラーメッセージを表示する方法について記していきます。 まずはバリデー…
decoratorとhelperとの違い Decorator・・・特定のモデルに関連した描画ロジックを実装 helper・・・モデルから独立し直接関係していない描画ロジックを実装 使用方法 Gemfile gem 'draper' コマンド $bundle install モデルと紐付けて作る $rails generate …
はじめに flashメッセージとは、Webサービスで何かの処理を行った際に、それがどのような処理になったかをユーザー側にメッセージとしてお知らせするためのものです。 それでは、flashメッセージの実装方法について記していきます。 まず、使い方 コントロー…
はじめに Railsのi18nによるアプリの日本語化対応の仕方を備忘録として残しておく。 基本的な設定 まず、言語設定とロケールファイルの読み込み設定を行う。 # config/application.rb # 言語設定 この設定を行なっていないと日本語を表示してくれない config…
はじめに sorceryとは、Railsに認証機能の実装を行うためのライブラリです。 同じように認証機能を提供してくれているものとしてdeviseなどが挙げられますが、sorceryの方がよりシンプルで、カスタマイズ性に富んでいるという特徴を持ちます。 sorceryでのロ…
はじめに gemがどのような流れで使われるのか、現時点でわかっていることをメモしておきます。 gemの使い方 1.ほしいgem(機能)を探す -------------------------- 2.rubygemsのサイトでそのgemを検索して、 公式にあるReadmeに読んで書いてある設定方法を確…
はじめに Railsに出てくるマニュフェストファイルについて調べてみました。 マニュフェストファイルとは? Railsにおけるマニフェストファイルとは、簡単に言うとCSSをひとまとめにしたapplication.cssファイルとJavaScriptをひとまとめにしたapplication.js…
はじめに rails generateコマンドはさまざまなファイルを自動生成してくれるとても便利なコマンドですが、「このファイル使わないんだよな〜」または「なんのファイルを生成しているかよくわからない」ってことはありませんか。そこで、今回はgenerateコマン…
はじめに resourcesの名前付きルートがパッと頭に浮かばない時がありましたので、表にまとめました。 resourcesでCRUDのルートを定義する resourcesはCRUDで必要な7つのルーティングを一括で定義してくれます。 HTTPメソッド URLパターン URLパターン名 ヘ…
はじめに form_withでscopeオプションがあるとないとでは、データの送られ方がどう違うの気になったので調べてみました。 scopeなし コントローラーで受け取ったparams(値)を見てみると、 <ActionController::Parameters {"authenticity_token"=>"nPZ6KTkVEA3QFWhaPDV30Bf6VjRbyey//NPjvjbDYoTcAKLOAsZGxXBJcknlsYm</actioncontroller::parameters>…
Strong Parametersとは? ユーザーが送信したデータをまるごと渡すことは危険であるため、許されたデータだけを入れるようにするやり方。または、セキュリティを向上させる方法。 例えば、 フォームから渡されたname,email,passwordのデータがあるとします。…
はじめに form_withがどのようなHTMLに変換されてコントローラーに渡されているのか気になったので調べてみました。 form_withはどのようなHTMLに変換されているのか? まず、元のform_withのソースです。 こちらが先ほどのform_withがHTMLに変換されたもの…
ブランチとマージのコマンド ブランチを新規追加する ・git branch ブランチ名 ブランチの一覧を表示する ・git branch #全てのブランチを表示する ・git branch -a ブランチを切り替える ・git checkout 既存のブランチ名 #ブランチを新規作成して切り替え…
GitHubとやり取りするコマンド リモートを表示する ・git remote #対応するURLを表示 ・git remote -v リモートリポジトリを新規追加する ・git remote add リモート名 リモートURL リモートから情報を取得する(フェッチ) ・git fetch リモート名 リモート…
変更を元に戻すコマンド ファイルへの変更を取り消す ・git checkout -- ファイル名 ・git checkout -- ディレクトリ名 #全変更を取り消す ・git checkout -- . ステージした変更を取り消す ・git reset HEAD ファイル名 ・git reset HEAD ディレクトリ名 …
Gitの基本的なコマンド ローカルリポジトリの新規作成 ・git init Gitリポジトリのコピーを作成する ・git clone 変更をステージに追加する ・git add 変更を記録する ・git commit 現在の変更状況を確認する ・git status 変更差分を確認する ・git diff ・…
アプリケーションがWebサーバーの機能を利用するためのインターフェースのこと。ユーザーがWebブラウザから操作しなくてもアプリケーションが直接Webサービスが利用できる。
「RESTの原則」を守って設計されたWebシステムのこと REST・・・Webサービスの設計モデル 【RESTの原則】 ・統一インターフェース あらかじめ定義・共有された方法(WebであればHTTP)で情報がやりとりされる。 ・アドレス可能性 すべての情報が一意なURLの…