Ruby on Railsを中心としたWebアプリ開発全般に関する技術情報を発信しています。ややニッチな手順やスニペットをまとめています。
【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】「mailcatcher」を使ってテストメールを送信/受信する
# はじめに Railsアプリでコンタクトフォームなどを自作している場合、開発段階でメールが送信されることを確認する必要があります。開発段階のテストのため、実際のメールサーバーを使うことや、実際のメールクライアントにテストメールが残ることを避けたいという場合があります。 本記事では、`mailcatcher`というGemを使ってテストメールサーバーを構築し、テストメールを送信する方法について説明します。 # mailcatcherを使ってテストメールを送信/受信 ## mailcatcherのインストール
【Rails】ActiveRecordのマイグレーションまとめ(Seed篇)【基礎】
# はじめに Railsには、マイグレーションで作成したデータベーススキーマにテストデータを登録する機能が用意されています。それがSeedと呼ばれるものです。Seedはテストデータを登録する処理をRubyで記述し、コマンドを実行することでデータベースにテストデータを登録することができます。 Seedを使うと、大量のデータを少しの記述とコマンド実行だけで登録することができますし、一度処理を書いてしまえば何度でも使えるので、データベースをリセットしてデータを再登録する必要がある場合に便利です。 なお、マイグレーションファイルの作成・編集については以下の記事をご覧ください。
【Rails】ActiveRecordのマイグレーションまとめ(実行篇)【基礎】
# はじめに ActiveRecordの機能のひとつ、マイグレーションは便利な機能ですが、使い方を間違えるとせっかく作ったデータベースを破壊してしまいかねません。データベースの操作を間違えたときに有用なロールバックも、きちんと手順を守って行わないとマイグレーションの整合性が崩れてしまう可能性があります。 本記事では、マイグレーションの実行についてまとめています。 なお、マイグレーションの作成・編集については以下の記事でまとめていますので、併せてご覧いただければと思います。 # マイグレーションの実行 ## ステータスコマンド
【Rails】ActiveRecordのマイグレーションまとめ(作成・編集篇)【基礎】
# はじめに データベースベンダーに依存することなくテーブルの作成やカラムの追加/削除などが行えるマイグレーションというActiveRecordの機能があります。マイグレーションはデータベースのスキーマ変更をバージョンとして管理するので、いつでもスキーマ変更を元に戻したり再実行できたりします。 本記事では、マイグレーションの作成・編集についてまとめています。 # マイグレーションの作成
# はじめに 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
「ブログリーダー」を活用して、whitiaさんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。