chevron_left

メインカテゴリーを選択しなおす

cancel
AUTOVICE -新人フリーランスの技術ブログ- https://www.autovice.jp/articles

Ruby on Railsを中心としたWebアプリ開発全般に関する技術情報を発信しています。ややニッチな手順やスニペットをまとめています。

whitia
フォロー
住所
未設定
出身
未設定
ブログ村参加

2019/12/06

arrow_drop_down
  • 【Markdown拡張記法】テキストを書くだけでフローチャートなどが作図できる「Mermaid」の導入方法

    # はじめに Mermaidは、簡単なテキストを書くだけでフローチャートやシーケンス図といったダイアグラムを動的に作成できるJavaScriptプラグインです。例えば、簡単なフローチャートを作図したい場合は以下のような構文を記述します。 ``` flowchart LR A["Local Computer"] --SSH--> B subgraph Remote Computer B[("Database (MySQL)")] end ``` Mermaidは上記のような構文を以下のような図に変換してくれます。 %%{init:{'theme':'base'}}%% flowchart LR

  • DeepLのページ全体翻訳を無料で試す方法

    # はじめに これからはグローバル社会の時代だと言われ始めて久しいですが、日本にいる以上はなんだかんだ言って日本語だけで生活が成り立ってしまうので、日本で生活する上で英語の必要性はそこまで高くありません。しかし、世界の標準言語は英語であり、IT技術の一次情報は必ず英語で書かれています。また、GitHub IssueやStack Overflowといったサイトをエンジニアならば一度は利用したことがあると思いますが、これらのサイトでもやり取りはすべて英語でされています。エンジニアにとって英語は避けては通れない言語です。

  • SSH設定済みのリモートサーバーに別のPCからSSH接続する方法

    # はじめに SSHの公開鍵/秘密鍵の生成やSSHのポート番号など既に設定済みのリモートサーバーに、今まで使っていたPC以外から接続する方法について記載します。なお、今回はConoHa VPSで作成したリモートサーバー(CentOS Linux 7)を使用します。 # SSH設定の確認 まず、現在のSSH設定がどうなっているかを確認します。 ConoHaにログインし、対象サーバーのコンソールを起動します。 コンソールが起動したらrootユーザーでログインします。 ## ログイン設定 以下のコマンドを実行してSSHの設定ファイルを開きます。 ``` # vi

  • 【Rails】M1チップ搭載MacでRuby on Railsの開発環境構築

    # はじめに M1チップ搭載MacにRuby on Railsの開発環境を構築する手順を記載します。 - MacBook Air (M1, 2020) - macOS Monterey 12.3.1 # Homebrew ## Homebrewのインストール 公式サイトに記載されているインストールコマンドを実行します。 ```sh % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` ## Homebrewのパスを追加

  • 【Rails】Rakeタスクの基本情報と作成・実行方法

    # はじめに Railsには標準でRakeというGemが同梱されています。RakeはRubyで実装されたMake(UNIX系のOSで使用できるコマンド)のようなビルド作業を自動化するツールです。Ruby Make、略してRakeというわけですね。 RailsアプリにおけるRakeタスクの使い方としては、リリース後にスポットでデータを投入したり、wheneverというGemと組み合わせて定期実行したい処理を定義したりといったことができます。 本記事では、Rakeタスクの作成方法や実行方法について説明します。 # Rakeタスクの基本情報 ## Rakeのインストール

  • 【Rails】モデルに外部キーを設定する方法とよく起こるエラー内容について

    # はじめに Railsでモデルに外部キーを設定する方法について説明します。 # モデルに外部キーを設定する ## リレーションシップ 今回は1つのブログ記事は複数のコメントを持つ1対多のリレーションシップを例に説明します。現在は`Article`モデルのみ存在し、外部キーとして`Article`モデルのIDを持つ`Comment`モデルを作成します。 ## モデルの作成 さっそく`Comment`モデルを作成していきます。ターミナルで以下のコマンドを実行します。余談ですが、`string`型の長さを指定したいときは`name:string{20}`のように長さを中括弧で囲む必要があります。

  • 【Rails】Capybaraのfill_inメソッドを実行すると「既存レコードの内容+指定した内容」がセットされる事象の原因と対処【RSpec】

    # はじめに RSpec + Capybaraを使用して、Railsアプリの統合テストを実装しています。とあるモデルの編集画面において、入力フォームの内容を書き換えた上で送信し、レコードが更新されることを確認します。 入力フォームの内容を書き換えるにはCapybaraの`fill_in`メソッドを使います。 ```rb fill_in 'ラベル', with: '書き換える内容' ``` 今回は編集画面のため、画面にアクセスした時点で既存レコードの内容がセットされています。`fill_in`メソッドが実行されると、既存レコードの内容は削除され、`with`で指定した内容に書き換えられます。

  • 【Rails】GitHubのセキュリティアラートで発見された脆弱性を解消する方法

    # はじめに GitHubにはセキュリティアラートという機能があります。セキュリティアラートはリポジトリに含まれるライブラリやパッケージの脆弱性を定期的にチェックし、脆弱性のあるライブラリやパッケージが発見されたらアラートで知らせてくれるという機能です。 本記事では、GitHubのセキュリティアラートで発見された脆弱性を解消する方法について説明します。 # Gemのアップデート手順 ## アップデートの準備 Gemのアップデートを行う前に、Gem自体のアップデートとBundlerのアップデートを行います。 ```bash # Gem自体のアップデート $ gem update --system

  • 【Rails】devise-two-factorを使った2段階認証の実装方法【初学者】

    # はじめに Railsアプリで2段階認証を実装するには、「rotp」というGemを使う方法の他に、「devise-two-factor」というGemを使う方法があります。「devise-two-factor」はその名の通り、IDとパスワードによる認証を実装する「devise」というGemの拡張機能です。 本記事では、IDとパスワードによる認証に加えて、「devise-two-factor」というGemを使った2段階認証を実装する方法について説明します。 なお、「rotp」を使った2段階認証の実装方法については以下の記事を参照してください。 # 実装の前提条件 ## 認証機能の実装

  • 【Rails】rotpを使った2段階認証の実装方法【初学者】

    # はじめに 昨今はIDとパスワードによる認証だけでなく、ワンタイムパスワードによる2段階認証を導入するWebアプリが増えてきました。Railsで作成したWebアプリでも、IDとパスワードによる認証に加えて2段階認証を導入するニーズが高まっています。 本記事では、IDとパスワードによる認証に加えて、「rotp」というGemを使った2段階認証を実装する方法について説明します。 # 実装の前提条件 ## 認証機能の実装 認証機能は実装済みであるとします。IDとパスワードによる認証の実装については以下の記事を参照してください。

  • 【Rails】deviseを使った認証機能の実装【初学者】

    # はじめに Railsアプリに認証機能を導入するには「devise」というGemを使う方法が最も簡単です。「devise」は認証に係る機能をほとんどコードを書くことなく実装できる反面、処理がブラックボックス化されており、全容が把握しづらいというデメリットがあります。Railsで初めて認証機能を導入する場合、まずは簡単な認証機能を自分で実装し、認証機能に関する理解を深めておくことをおすすめします。認証機能を自分で実装する方法については以下の記事を参照してください。 本記事では、「devise」を使った認証機能の実装について説明します。 # 「devise」の基本的な使い方 ##

  • 【Rails】Railsプロジェクトの新規作成【初学者】

    # はじめに Ruby on Rails(または単にRails)は、Rubyというプログラミング言語で設計・開発されたWebアプリケーションフレームワークです。一般的に、Webアプリケーションをイチから作成するには膨大な量のコードを書く必要があります。Webアプリケーションフレームワークは、Webアプリケーション開発で必要になるであろう機能のほとんどを初めから用意しており、Webアプリケーションが簡単に開発できるようになっています。そして、Webアプリケーションフレームワークの中でも人気のあるのがRailsです。 本記事では、Railsアプリを作成する方法について説明します。 #

  • 【CSS+JS】メニューアイコンの一種、ベントーメニューの実装方法(アニメーション付き)

    # はじめに メニューアイコンの中ではハンバーガーメニューが有名だと思いますが、その他にもいろいろな種類があって、それぞれに名前もつけられています。 本記事では、ハンバーガーメニューの次に比較的よく使われているであろうベントーメニューの実装方法について説明します(クリックしたときのいい感じのアニメーションについても説明します)。 なお、メニューアイコン(ハンバーガーメニュー)の基本的な実装方法については以下の記事で詳しく説明しています。 # サンプル See the Pen Untitled by whitia (@whitia) on CodePen.

  • 【CSS+JS】メインコンテンツの裏から現れるフッターの実装方法

    # はじめに オシャレなサイトなどでたまに見かける「メインコンテンツの裏から現れるフッター」の実装方法について説明します。 # サンプル See the Pen Untitled by whitia (@whitia) on CodePen. 最下部までスクロールすると、メインコンテンツの裏からフッターが現れるようなデザインになっています。なかなか面白いデザインではないかと思います。 # 実装 ## HTML 必要な要素はメインコンテンツとフッターのみです。 ```html ``` ## CSS メインコンテンツとフッターに以下のスタイルを設定します。 ```css main {

  • 【CSS+JS】背景画像の視差効果(パララックス)を実装する方法

    # はじめに JavaScriptプラグインを使わずに、背景画像の視差効果(パララックス)をVanilla JS(ピュアなJavaScript)だけで実装する方法について説明します。 # サンプル まず、背景画像の視差効果(パララックス)とはどういうものなのか確認するために、下記のサンプルをご覧ください。 See the Pen Untitled by whitia (@whitia) on CodePen.

  • 【Rails】ダウンロードしたフリーフォントをWebpackerを使って導入する方法

    # はじめに Webサイトのデザインを彩るひとつの要素にフォントの種類があります。Google Fontsの登場により、様々なフォントが手軽に導入できるようになりました。しかし、世の中にはGoogle Fontsが提供するフォント以外にもたくさんのフリーフォントが存在します。 本記事では、ダウンロードしたフリーフォントをWebpackerを使って導入する方法について説明します。 # フリーフォントの導入手順 ## Railsアプリの用意 今回は以下のビューを作成しました。 #### ERB ```erb ダウンロードしたフリーフォントを Webpackerを使って導入する方法 ``` ####

  • 【Rails】mimemagicに依存しているRailsアプリでbundle installコマンドが失敗する事象の対処法

    # はじめに Railsアプリで`bundle install`コマンドを実行しようとしたところ、以下のエラーメッセージが出力されコマンドに失敗しました。 ``` Your bundle is locked to mimemagic (0.3.5), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of mimemagic (0.3.5) has removed it.

  • 【Rails】macOSのアップデート後にrailsコマンドが失敗する事象の対処法

    # はじめに 久しぶりにRailsアプリに手を入れようと思い、`rails server`コマンドを実行してRailsサーバーを立ち上げようとしたところ、エラーが出て起動に失敗してしまいました。 前回までの間にしたことの中で思い当たることと言えば、macOSのアップデートを行ったくらいです。そういえば以前から何度かmacOSのアップデートを行った後にRailsサーバーが起動できなくなる事象に陥っていたような気がします。今後は同様の事象が出ても焦ることのないように対処法をまとめておきたいと思います。 # 事象:エラー内容 ターミナルで`rails

  • 【CSS+JS】現在のスクロール量を確実に取得する(プロパティ対応状況まとめ)

    # はじめに JavaScriptで現在のスクロール量を取得するためのプロパティはたくさんあります。種類がありすぎるため、かえってどれを使えばいいのかいまいちわからないという人も多いかと思います。 本記事では、各プロパティのブラウザ対応状況まとめと、現在のスクロール量を確実に取得する方法について説明します。 # スクロール量を取得するプロパティ一覧 スクロール量を取得するプロパティ一覧とブラウザの対応状況は以下の通りです。`window.pageYOffset`は`window.scrollY`のエイリアスなので対応状況はまったく同じです。 プロパティ名

  • 【CSS+JS】ウィンドウ内全体にファイルをドラッグ&ドロップしてアップロード

    # はじめに ユーザーが選択したファイルをアップロードする必要がある場合、ファイル選択フィールドを設置することはもちろんですが、ファイルをドラッグ&ドロップしてアップロードできるようにもなっていると使い勝手のいいサービスだと言えます。しかし、ドラッグ&ドロップできるエリアが一部分だけだと少し不便な場合があります。 本記事では、ウィンドウ内全体をドラッグ&ドロップできるエリアとしてファイルをアップロードする方法について説明します。 # サンプル 埋め込んだCodePenだと正常に動作しないかもしれないので、その場合は右上の「EDIT ON

  • 【自作Webサービス】Napstablook《投資信託管理サービス》の機能紹介

    # はじめに 1年半くらい前に作ったWebサービス、Napstablook《投資信託管理サービス》の大幅なリニューアルと軽微なバグ修正を行いました。 Napstablook《投資信託管理サービス》はあなたの保有する投資信託を整理するWebサービスです。クラス毎に保有比率を確認することもできます。また、目標比率を設定することで、実際比率との比較をグラフィカルに行うこともできます。さらに、リバランス(増資)のシミュレーションを行うこともできます。 # 機能紹介 ## ファイルのインポート SBI証券などからダウンロードした、あなたが保有する投資信託一覧をインポートします。ファイル形式はCSV

  • 【Rails】Railsアプリのデバッグ《マルチデバイス篇》

    # はじめに 近年のWebアプリはレスポンシブ対応が当たり前になっています。最低でもPCとスマートフォンに対応したデザイン、ときにはその中間のタブレットに対応したデザインなんかも作成する必要があります。 Webアプリの開発はPCを使って行うのでPCでのデバッグは簡単ですが、スマートフォンやタブレットなどの別端末でのデバッグは少々面倒です。Google Chromeのデベロッパーツールを使えば任意のスマートフォンの解像度に変更することが可能ですが、そこで確認したデザインと実機で確認したデザインは微妙に異なるということがよくあります。

  • 【Rails】Railsアプリのデバッグ《Better Errors篇》

    # はじめに Railsアプリの開発中になんらかのエラーが発生すると、デフォルトでは以下のような画面が表示されます(画像をクリックすると拡大します)。 Railsアプリの開発者なら誰しも一度は見たことがあるこのエラー画面ですが、Better ErrorsというGemを導入すると、より見やすくより使いやすくカスタマイズすることができます。 本記事では、Better Errorsの導入から使い方について説明します。 # Better Errorsの表示例 上記のエラー画面をBetter

  • 【Rails】Railsアプリのデバッグ《byebug篇》

    # はじめに Ruby on Railsに限りませんが、アプリの開発中にはエラーは付き物です。なにかしらのエラーが発生したときに、エラーの原因を特定しエラー箇所を修正することをデバッグと言います。Railsではデバッグの手助けとなる機能があらかじめ備わっています。 本記事では、「byebug」を使ったデバッグについて説明します。 # byebugの使い方 ## byebugのインストール Railsアプリを作成した時点でbyebugはインストールされています。作成後にbyebugを削除してしまったなどの理由でインストールされていない場合、`Gemfile`に以下を追記して`bundle

  • 【CSS+JS】モーダルウィンドウを表示しその中にYouTube動画を動的に埋め込む

    # はじめに 動画のサムネイル画像をクリックしてモーダルウィンドウを表示し、その中にYouTube動画を動的に埋め込む方法について説明します。なお、本記事ではYouTube動画を動的に埋め込むまでを範囲とし、埋め込んだ動画の再生制御などは範囲外とします。 # 実装 ## サンプル ふたつのサムネイル画像をそれぞれクリックしてみてください。フルスクリーンのモーダルウィンドウが表示され、その中にそれぞれに対応したYouTube動画が埋め込まれています。モーダルウィンドウの動画以外の場所をクリックするとモーダルウィンドウが閉じます。 See the Pen WNpRxYM by whitia

  • 【CSS+JS】テキストを1文字ずつ表示するアニメーションの実装方法

    # はじめに モダンなサイトでよく見かける「テキストを1文字ずつ表示するアニメーション」の実装方法を解説します。 # 実装 ## サンプル 繰り返し動作を確認したい場合は右下の「Rerun」ボタンをクリックしてください。 See the Pen abJBryq by whitia (@whitia) on CodePen. ## HTMLの実装 コンテナーの中に二行のテキストを入れています。行数は好きなだけ増やすことができます。 #### HTML ```html Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do

  • 【Rails】レンダリング(renderメソッド)でアンカー指定を行う

    # はじめに 通常、Railsでアンカー付きのリクエストを発生させるには`redirect_to`を使います。 ```rb redirect_to root_path(anchor: 'target') ``` では、`render`でビューを表示させるときにアンカーを指定したいときはどうすればいいのでしょうか。`render`は`redirect_to`のような書き方はできません。 ```rb # 以下の書き方はできない render :index(anchor: 'target') render "index#target" ```

  • 【VSCode】「Search/Translate Hero」を使って右クリックで簡単に検索/翻訳を行う

    # はじめに VSCodeを使って開発を行なっているときに何らかのエラーが発生することがあります。しかし、エラーメッセージというのは英語で書かれていることがほとんどなので、英語が苦手な人にとっては解読に時間がかかってしまいます。英語のエラーメッセージでもGoogle翻訳やDeepLといった翻訳サービスを使えばいいのですが、VSCodeでエラーメッセージをコピーし、ブラウザを開き、翻訳サービスにアクセスし、エラーメッセージをペーストという一連の作業すら面倒なときがあります。 Search/Translate

  • 【Rails】Bundler 2.2.x以降は開発者が適切なプラットフォームを追加する必要がある

    # 事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash # 実行コマンド Running $HOME/.rbenv/bin/rbenv exec bundle check # エラー内容 Your bundle only supports platforms ["x86_64-darwin-18"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle lock

  • 【Rails】Webpackerと互換性のないNode.jsがインストールされているとエラー

    # 事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash # 実行コマンド Running $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile # エラー内容 error @rails/webpacker@4.3.0: The engine "node" is incompatible with this module. Expected version ">=8.16.0". Got "6.17.1" ``` > エンジン "node"

  • �【Rails】Capistranoの設定でシンボリックリンクを張るファイルをなぜかディレクトリとして作成しようとしてエラー

    # 事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash # 実行コマンド Running /usr/bin/env mkdir -p /var/www/app/shared/config/master.key /var/www/app/shared/log ... # エラー内容 mkdir: ディレクトリ `/var/www/app/shared/config/master.key' を作成できません ``` Capistranoの設定ファイルは以下の通りです(抜粋)。 #### deploy.rb ```rb set

  • 【Rails】RubyGemsのバージョンが3.1.3未満だとBundler実行時にエラー:bundler: failed to load command: <gem>

    # 事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash # 実行コマンド Running $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile # エラー内容 bundler: failed to load command: rake (/var/www/app/shared/bundle/ruby/2.6.0/bin/rake) Gem::Exception: can't find executable rake for gem rake. rake

  • 【Rails】Webサーバー「Unicorn」の基本情報と実装方法

    # はじめに Railsアプリを本番環境で稼働させるには、クライアントからのリクエストを捌くWebサーバーを導入する必要があります。WebサーバーはクライアントからのリクエストをRailsアプリに伝達し、Railsアプリで処理されたレスポンスをクライアントに返すという役割を担います。 本記事では、Webサーバー「Unicorn」の使い方についてまとめています。 # Unicornの基本 ## Unicornについて UnicornとはRackアプリケーション用のWebサーバーです。

  • Capistranoの使い方まとめ

    # はじめに アプリを本番環境にアップロードして誰でもアクセスできる状態にすることをデプロイと言います。デプロイで行うべきことは多岐にわたります。Railsアプリの場合で言えば、本番環境にアップロードすることはもちろんですが、Gemのインストールやマイグレーション、SprocketsやWebpackerのコンパイルなど多くのことを行う必要があります。これらの作業を毎回すべて手作業で行うのは骨が折れますし、いつもヒューマンエラーを起こさないとも限りません。Capistranoというデプロイツールを使えば面倒なデプロイ作業を自動化することができます。

  • Webpackerの使い方まとめ

    # はじめに Rails 6からWebpackerが正式採用されました。Rails 5ではオプションで追加することができたWebpackerですが、Rails 6からは普通にアプリを作成するだけでWebpackerがインストールされ、必要な設定もすべて行われるのですぐにWebpackerを使い始められるようになりました。 本記事では、Webpackerの使い方についてまとめています。 # Webpackerの基本 ## Webpackerについて

  • アセットパイプラインまとめ

    # はじめに Ruby on Railsにはアセットパイプラインという機能があります。アセットパイプラインは画像、CSS、JavaScriptといったアセットファイルを連結/圧縮することでRailsアプリを高速化します。また、より高級な言語で書かれたCSSやJavaScriptをコンパイルする機能も備えています。 Rails

  • Turbolinksの使い方まとめ

    # はじめに Ruby on Railsにはページの遷移を高速化するTurbolinksという機能があります。Turbolinksは優れたJavaScriptライブラリですが、Rails 5からは標準で有効化されているため、Turbolinksを使っているということすら知らずにRailsアプリを作成している人も多いと思います。しかし、Turbolinksの仕様についてきちんと理解していないとバグを生み出す原因になりかねません。 本記事では、Turbolinksの基本的な仕様や、Turbolinksを無効化する方法についてまとめています。 # Turbolinksについて

  • 【Rails】UIkit - HTML editorを使って簡単にマークダウンエディターを実装

    # はじめに Ruby on RailsではAction Textという機能を使うことで簡単にリッチテキストエディターを実装することができます。 Action TextはTrixエディターというコンポーネントを使用しています。Trixエディターはテキストの装飾や画像の挿入といった基本的な機能は備えていますが、テーブルとコードブロックを挿入することはできません。日記のような記事を書くだけなら必要十分かもしれませんが、技術的な記事を書く場合にはテーブルやコードブロックがどうしても必要になります。

  • 【CSS】CSSだけでMarkdownのコードにファイル名をつける

    # はじめに Markdownのコードに、そのコードがどのファイルのものなのかを示すためにファイル名が書いてあるとわかりやすいです。以下はQiitaの記事でコードを書いたときの一例です。 左上にコードの出典を示すファイル名がつけられています。このコードは以下のように記述しています。 Qiitaではこのように書くことでコードにファイル名をつけることができます。しかし、この書き方はちゃんとしたMarkdownの書き方というわけではないので、Qiita以外でこの書き方をしてもコードにファイル名をつけることはできません。 本記事では、CSSだけでコードにファイル名をつける方法について説明します。 #

  • 【Rails】ページネーション「kaminari」で用意されているテーマ一覧とスタイルのカスタマイズ

    # はじめに Railsアプリにページネーションを簡単に実装できる`kaminari`というGemには、BootstrapなどのCSSフレームワークのテーマ(テンプレートファイル)が用意されています。わざわざCSSフレームワークのクラスを手動で付与しなくても、専用コマンドを実行するだけで各テーマのテンプレートファイルをRailsアプリにフェッチすることができます。 本記事では、`kaminari`で使用できるテーマ一覧を画像付きで紹介します。また、CSSフレームワークではなく独自のスタイルにしたい場合に、`kaminari`で実際に生成されるタグやクラスを紹介します。 #

  • 【Rails】Rails + microCMSで簡単にブログを作成

    # はじめに 以前、HeadlessCMSのContentfulというWebサービスを使って簡単にブログを作成する方法について説明しました。今回は、日本製のHeadlessCMSであるmicroCMSを使って簡単にブログを作成する方法について説明します。 Contentfulを使って簡単にブログを作成する方法や、「そもそもHeadlessCMSって何?」という方は以下の記事を参照してください。 # microCMSについて

  • 【Rails】テンプレートエンジン「Slim」を使用する前に覚えておくべきこと

    # はじめに Ruby on Railsのデフォルトのテンプレートエンジンは「ERB (Embedded Ruby)」です。ERBは通常のHTMLにRubyコードを埋め込むためのテンプレートエンジンです。しかし、RailsがサポートしているテンプレートエンジンはERBだけではありません。「Slim」は、その名の通りスリムに書くことができるテンプレートエンジンです。 本記事では、テンプレートエンジン「Slim」を使用する際に覚えておくべきことをまとめています。 # Slimの書き方

  • 【Rails】Railsアプリにオリジナルのエラーページ(404/500)を実装

    # はじめに Railsアプリを新規作成した時点では、`404 Not Found`のエラーページは以下のようになっています。 エラーが出ているということは伝わりますが、すべて英語で書かれていて無骨な印象を受けます。`404 Not Found`という文言も見当たらないため、一見してどういう内容のエラーなのかが伝わりにくいです。このようなエラーページではなく、もっとわかりやすいオリジナルのエラーページを実装することができます。 本記事では、Railsアプリでオリジナルのエラーページを実装する方法について説明します。 # オリジナルのエラーページを実装 ## ルーティングの追加

  • 【Rails】ActionMailerの使い方まとめ【基礎】

    # はじめに コンタクトフォームからお問い合わせ内容を送信したり、ブログに新着コメントがあったことを知らせる内容を送信したり、Railsアプリでメールを送信する必要のある場面は多いです。ActionMailerという機能を使えば簡単にメール送信機能が実装できます。ビューと同じようにレイアウトやテンプレートなども使えるので少し凝ったメールデザインにすることもできます。 本記事では、ActionMailerの使い方についてまとめています。 # ActionMailerの基本 ## ActionMailerの作成 ActionMailerを作成するには、以下のコマンドを実行します。 ```bash

  • 【Rails】ActiveStorageの使い方まとめ【基礎】

    # はじめに Rails 5.1までは、画像などをアップロードするには`CarrierWave`などのGemを使う必要がありました。Rails 5.2からActiveStorageという機能が追加され、別途Gemをインストールしなくても組み込みの機能だけで画像などをアップロードできるようになりました。 本記事では、ActiveStorageの使い方についてまとめています。 # ActiveStorageの使い方 ActiveStorageを使うと、容易に画像ファイルなどをローカルストレージや代表的なクラウドストレージ(Amazon S3、Google Cloud

  • 【Rails】ActiveRecord(モデル)の使い方まとめ(バリデーション篇)【基礎】

    # はじめに ActiveRecord(モデル)のバリデーション設定を行うことで、実際にデータが保存される前に不適合データを弾くことができます。ほとんどのデータベースはカラムに制約を設定することができますが、Railsアプリのモデルでバリデーションを行えば、Railsアプリとデータベース間の無駄なやり取りを減らすことができます。また、テストやメンテナンスのしやすさもメリットのひとつです。 本記事では、ActiveRecord(モデル)のバリデーションについてまとめています。 # バリデーションの使い方 ## バリデーションの動作

  • 【Rails】ActiveRecord(モデル)の使い方まとめ(基本篇)【基礎】

    # はじめに ActiveRecord(モデル)は、MVCモデルのMに相当します。モデルはRailsアプリとデータベースの橋渡し役を担います。データベースの種類(MySQL、MariaDB、PostgreSQL、SQLite)にかかわらず、統一的なインターフェースでデータの操作(取得、作成、更新、削除)を行うことができます。 本記事では、ActiveRecord(モデル)の使い方についてまとめています。 # モデルの基本 ## ORMフレームワーク ORM (Object Relational Mapping)

  • 【Rails】ActionView(ビュー)の使い方まとめ(フォーム篇)【基礎】

    # はじめに ActionView(ビュー)では、一般的なフォームを作成するための豊富なヘルパーメソッドが用意されています。Railsアプリにおいてフォームはなくてはならないものです。ユーザーの目に触れる部分でもあるので、フォームの良し悪しがアプリの評価にも繋がります。 本記事では、ActionView(ビュー)の機能のうち、フォームに関することをまとめています。 # フォームの書き方 ## フォームのヘルパーメソッド Rails

  • 【Rails】ActionView(ビュー)の使い方まとめ(基本篇)【基礎】

    # はじめに ActionView(または単にビュー)は、クライアントに表示するWebページを構築します。モデルのデータをコントローラーから受け取り、それを適切な形で画面上に配置します。ビューでは、ヘッダーやフッターなどの共通部分を部品化してテンプレートに埋め込む機能や、画像などのアセットファイルを呼び出すアセットタグヘルパーを使うことができます。 本記事では、ActionView(ビュー)の使い方をまとめています。 # ビューの基本 ビューは`app/view/`ディレクトリ配下に作成します。コントローラー名のディレクトリを作成し、その中に各画面のテンプレートを作成していきます。 ##

  • 【Rails】ActionController(コントローラー)の使い方まとめ【基礎】

    # はじめに ActionController(または単にコントローラー)はMVCモデルのCに相当します。コントローラーはルーティングからリクエストを受け取ると、必要であればモデルと連携してデータベースからデータを取得し、それをビューに渡します。あるいは、ビューから受け取ったデータをモデルに渡し、データベースの更新を指示します。コントローラーはモデルとビューの橋渡し役を担っています。 本記事では、ActionController(コントローラー)の使い方についてまとめています。 # コントローラーの基本

  • 【Rails】Railsのルーティングの書き方まとめ【基礎】

    # はじめに Railsのルーティングは、受け取ったURLを解析し、適切なコントローラーのメソッドに処理を移譲する役目を担います。ルーティングはMVCモデルの各機能と並んでRailsアプリの基幹機能のひとつだと言えます。 本記事では、Railsのルーティングの書き方についてまとめています。なお、ルーティングの書き方はたくさんありオプションも豊富に存在しますが、本記事ではよく使うであろう書き方のみ取り上げています。 # ルーティングの確認 現在のルーティングを確認するには、以下のコマンドを実行します。 ``` $ rails routes ```

  • 【Rails】Credentialsを使用した機密情報の保護【基礎】

    # はじめに 外部APIのキー情報やアクセストークンなどの機密情報を外部に漏らしてしまうと悪用される可能性があります。実際、外部APIにアクセスするための機密情報をオンコードで記述し、そのソースコードをGitHubに上げてしまったために、外部APIを不正利用(ただ乗り)されてしまったという事例もあります。 Railsにはそういった機密情報を暗号化し、安全に保護するCredentialsという機能があります。Credentialsを使えば、復号化キーを漏洩/盗難/紛失しない限り、機密情報を保護することができます。 本記事では、Credentialsを使った機密情報の保護について説明します。 #

  • 【Rails】I18nを使用したRailsアプリの多言語対応(日本語化)【基礎】

    # はじめに Ruby on Railsのデフォルトの言語は英語です。デフォルト言語が英語ということで一番初めに困るのは、エラーメッセージが英語で表示されることでしょう。バリデーションエラーにより表示されたメッセージが英語だと、とてもユーザーフレンドリーなアプリケーション設計とはいえません。 Railsには、このようなエラーメッセージを多言語化(もちろん日本語化も)する機能があります。エラーメッセージ以外にも、例えばビューで使用する文字列なども簡単に変換することができます。 本記事では、I18nを使用した多言語対応についてまとめています。 # I18nについて

  • 【Rails】Rails + Contentfulで簡単にブログを実装

    # はじめに Railsで記事の作成/編集/削除を行うブログを実装することは簡単です。以下のように`scaffold`コマンドを実行するだけで、ブログに必要なコントローラー、モデル、マイグレーション、ビュー、ルーティングが作成されます。 ``` $ rails generate scaffold Article title:string content:text ```

  • 【Rails】ブログに記事の下書き保存機能を実装する

    # はじめに Railsアプリで作成したブログで記事を途中保存したいときがあります。保存はしたいのですが、書いている途中の記事を一般公開するわけにはいきません。記事を一般公開はせずに保存しておく下書き機能があると便利です。 本記事では、ブログの記事を下書き保存する機能を実装する方法について説明します。 # 下書き保存機能を実装 今回実装する下書き保存機能の概要は以下の通りです。 - 記事投稿/編集画面で「下書き」または「公開中」を選択 - 記事が「公開中」の場合、誰でも閲覧可能 - 記事が「下書き」の場合、管理者のみ閲覧可能 - 管理者以外が直接アクセスしたらログイン画面へ遷移 -

  • 【Rails】お問い合わせメールやコメントで英語のスパム対策を行う

    # はじめに Railsアプリでコンタクトフォームやブログのコメント機能を実装している場合、英語のスパムメールやスパムコメントが送信されてくることがあります。何も対策をしていないと結構な頻度で送信されてくるので困っているという方も多いかと思います。 本記事では、英語のスパムメールやスパムコメントを抑制する方法について説明します。 # 英語のスパム対策 ## 英語のスパムについて 英語のスパムとは、すべて英語で書かれており日本語が含まれていないスパムのことを指します。

  • 【Rails】「mailcatcher」を使ってテストメールを送信/受信する

    # はじめに Railsアプリでコンタクトフォームなどを自作している場合、開発段階でメールが送信されることを確認する必要があります。開発段階のテストのため、実際のメールサーバーを使うことや、実際のメールクライアントにテストメールが残ることを避けたいという場合があります。 本記事では、`mailcatcher`というGemを使ってテストメールサーバーを構築し、テストメールを送信する方法について説明します。 # mailcatcherを使ってテストメールを送信/受信 ## mailcatcherのインストール

  • 【Rails】ActiveRecordのマイグレーションまとめ(Seed篇)【基礎】

    # はじめに Railsには、マイグレーションで作成したデータベーススキーマにテストデータを登録する機能が用意されています。それがSeedと呼ばれるものです。Seedはテストデータを登録する処理をRubyで記述し、コマンドを実行することでデータベースにテストデータを登録することができます。 Seedを使うと、大量のデータを少しの記述とコマンド実行だけで登録することができますし、一度処理を書いてしまえば何度でも使えるので、データベースをリセットしてデータを再登録する必要がある場合に便利です。 なお、マイグレーションファイルの作成・編集については以下の記事をご覧ください。

  • 【Rails】ActiveRecordのマイグレーションまとめ(実行篇)【基礎】

    # はじめに ActiveRecordの機能のひとつ、マイグレーションは便利な機能ですが、使い方を間違えるとせっかく作ったデータベースを破壊してしまいかねません。データベースの操作を間違えたときに有用なロールバックも、きちんと手順を守って行わないとマイグレーションの整合性が崩れてしまう可能性があります。 本記事では、マイグレーションの実行についてまとめています。 なお、マイグレーションの作成・編集については以下の記事でまとめていますので、併せてご覧いただければと思います。 # マイグレーションの実行 ## ステータスコマンド

  • 【Rails】ActiveRecordのマイグレーションまとめ(作成・編集篇)【基礎】

    # はじめに データベースベンダーに依存することなくテーブルの作成やカラムの追加/削除などが行えるマイグレーションというActiveRecordの機能があります。マイグレーションはデータベースのスキーマ変更をバージョンとして管理するので、いつでもスキーマ変更を元に戻したり再実行できたりします。 本記事では、マイグレーションの作成・編集についてまとめています。 # マイグレーションの作成

  • 【Rails】Gemfileでよく使う書き方まとめ【基礎】

    # はじめに RailsアプリにGemをインストールするときに使うGemfileですが、意外とその詳しい書き方は把握していないという方も多いと思います。例えば、インストールするバージョンを「2.1.2以上でパッチバージョンのみ上げることを許容」などと指定する方法や、ソースとしてGitHubの特定のブランチを指定する方法などは、よく使う割に曖昧になりがちです。 本記事では、Gemfileを書くときによく使うものの「そういえば、どう書くんだっけ?」ということをまとめています。 # Gemfileでよく使う書き方 ## Gemのバージョン指定

  • 【Rails】Railsアプリで「logmon」を使ってログ監視を行う

    # はじめに エラーが起こってからログファイルを確認していたのではどうしても初動対応が遅れてしまいます。定期的に手動でログファイルを確認するにしてもすぐにエラーに気付けるとは限りませんし、何より毎回手動で確認するのは大変です。 定期的に自動でログファイルを監視し、エラーが起こったときにメールで通知する「ログ監視ツール」を導入すれば、すぐにエラーに気付くことができますし、手動で確認する必要がないので楽です。 本記事では、Linuxの`logmon`を使ってRailsアプリのログ監視を行う方法について説明します。 # ログ監視ツール Linuxのログ監視ツールには多くの種類があります。

  • 【GCP】Google Cloudの無料プログラム「Always Free」でCloud Storageを使う

    # はじめに Googleが提供するGoogle Cloud Platform (GCP)には2種類の無料プログラムがあります。ひとつはトライアル期間中に利用できる$300分のクレジット、もうひとつは使用量上限の範囲内であれば無料で利用できる「Always Free」と呼ばれるプログラムです。 本記事では、Always FreeプログラムでCloud Storageを使う具体的な方法について説明します。 # Always Freeプログラムについて Always Freeプログラムでは、使用量上限の範囲内であれば一般的なGoogle Cloud

  • 【Rails】Railsアプリのログローテーション設定を行う

    # はじめに Railsアプリのログは、初期設定だとひとつのファイルに出力し続けるようになっています。また、古いログが削除されずに延々と蓄積されていくことになるので、そのままにしておくとログが肥大化してディスク領域を圧迫してしまいます。 ```bash $ ls -lh /var/www/autovice/current/log/ 合計 2.2G -rw-rw-r-- 1 user user 1.2K 10月 10 2019 development.log -rw-r--r-- 1 nginx root 154M 3月 4 14:59 nginx.access.log -rw-r--r-- 1

arrow_drop_down

ブログリーダー」を活用して、whitiaさんをフォローしませんか?

ハンドル名
whitiaさん
ブログタイトル
AUTOVICE -新人フリーランスの技術ブログ-
フォロー
AUTOVICE -新人フリーランスの技術ブログ-

にほんブログ村 カテゴリー一覧

商用