Try Rails

HashWithIndifferentAccessを使ってみる

HashWithIndifferentAccessとは? HashWithIndifferentAccessを使うことで、シンボルでも文字列でもハッシュにアクセス可能となる。 hoge = ActiveSupport::HashWithIndifferentAccess.new(hoge: 'ほげ') # シンボル hoge[:hoge] => "ほげ" # 文字列 hoge['h…

ActiveJobとは?

Active Jobとは? バックグランドで実行するjobや、キューを操作するためのフレームワークのことです。 $ bin/rails g job hoge 上記のコマンドを実行すると app/jobs/hoge.rbというjobが作成されます。 # app/jobs/hoge.rb class HogeJob < ActiveJob::Base …

punditを使ってみる

punditとは punditは認証系のgemの一種であり、対象のリソースに対して何を(誰を)許可するのかを定義することができます。 punditをインストール gem 'pundit' $ bundle install punditの初期設定 app/controllers/application_controller.rbにPunditをinclu…

Decoratorとは?

Railsでは責務を分割することによって、可読性、保守性の高いアプリケーションを作ることができます。helperにはビュー表示の責務を持たせ、modelには対象リソースに関する処理を責務として持たせます。 そのなかで、Decoratorにはhelperとmodelの中間のよう…

ActiveSupport::Concernとは?

ActiveSupport::Concernとは ? ActiveSupport::Concernを使うことで、複数のcontrollerで利用する処理をモジュール化することができます。 モジュールを作成する app/controllers/concernsにモジュールを設置します。 # モジュール名はキャメルケースです mo…

helperメソッドを使ってみる

Helperとは? viewをDRYに記述することができるモジュールです。Helperを利用することでviewファイルの可読性が向上します。 helperはlink_toやform_tagなどのメソッドをデフォルトで用意してくれていますが、独自に作成することも可能です。 helperメソッド…

letter_openerを使ってみる

letter_openerとは? 開発中のアプリケーションから送信されたメールを、ブラウザ上で簡単に確認することができるGemです。 今回は前提条件としてデバイスをインストールし、メール認証の設定が完了していることを前提としています。 letter_openerをインス…

Rails Adminを使ってみる

RailsAdminとは? アプリケーションの管理画面を自動生成してくれるgemです。 管理画面内でデータの確認や追加ができるようになります。 今回は前提条件として土台のrailsアプリケーションとdeviseのセットアップは完了していることを想定しています。 Rails…

dotenvを使って、環境変数を設定する

dotenvとは? .envファイルに設定した変数を、アプリケーション内で環境変数として利用できるGemです。 dotenvをインストール gem 'dotenv-rails' $ bundle install .envファイルを作成 アプリケーション直下に.envを作成し、変数を設定する。 HOGE_HOGE=123…

find_or_create_byを使ってみる

find_or_create_byとは 検索条件に合致するデータが存在した場合、1件目のデータを取得し、存在しない場合は新規作成します。 $ モデル名.find_or_create_by(条件) アプリケーションの土台を作る $ rails new find_or_create_by_test $ rails g scaffold Use…

enumを使ってみる

enumとは ActiveRecordが提供する機能の一種で、列挙型のクラスのことです。 土台となるアプリケーションを作成する $ rails new enum_test $ rails g scaffold User name:string role:integer マイグレーションファイルを修正する class CreateUsers < Acti…

CSV.generateを使って、配列の中身をCSV形式でダウンロードする

CSV.generateとは? 対象データを自動的にCSV形式に変換してくれるCSVライブラリの一種です。 テストデータの作成 今回は辞書のような配列を用意し、csvファイル作成します。 dictionary = [['犬', 'dog'], ['猫', 'cat'], ['豚', 'pig'], ['猿', 'monkey']] …

Active Support を使ってみる

Active Supportとは? 以下、RailsGuidesより。 Active SupportはRuby on Railsのコンポーネントであり、Ruby言語の拡張、ユーティリティ、その他横断的な作業を担っています。 Active Supportは言語レベルで基本部分を底上げして豊かなものにし、Railsアプ…