特定の場所のエラーを拾う 何らかのエラーが発生した場合、 そのまま Rails の英語のエラー画面を出してしまうと、 ユーザーに無駄に悪い印象を与えてしまったりするので、 表側に出す用のエラー画面を用意して遷移させておく。
![Rails のエラー処理について知ってる範囲でまとめ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/40e43b6969062a35a644a2ae007c5f4d23eed4c1/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UmFpbHMlMjAlRTMlODElQUUlRTMlODIlQTglRTMlODMlQTklRTMlODMlQkMlRTUlODclQTYlRTclOTAlODYlRTMlODElQUIlRTMlODElQTQlRTMlODElODQlRTMlODElQTYlRTclOUYlQTUlRTMlODElQTMlRTMlODElQTYlRTMlODIlOEIlRTclQUYlODQlRTUlOUIlQjIlRTMlODElQTclRTMlODElQkUlRTMlODElQTglRTMlODIlODEmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWYzNmJlZDExMjk4MzQxYTVlNTUxNmQ2NGNkYWRhN2Mx%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBteXQ3MzImdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTc2YWYyNjlhMjY3ODI2NzQ5ODgwYjQyNjBjMmQ5ZjI5%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3D9603708f400abd1153485b108fa6a615)
1. はじめに Redisを長く運用していると、いつの間にかSwap Usageが高騰したり、Freeable Memoryが枯渇してきて問題になることがあります。 そんなとき様々な原因が考えられますが、その一つにTTLを指定していないキーが容量を逼迫していたときの対処についてご紹介します。 2. Redis TTL とは ttl コマンドでキーの有効期間を確認します。 有効期間を設定する場合は expire コマンドで指定します。 有効期間が設定されていないキーからは -1 が返ります。 存在しないキーからは -2 が返ります。 ※Redis 2.6以前の場合は存在しないキーも -1 が返ります。 下記は使用例です。 > set key "hage" OK > get fuga "hage" // キーにTTL(単位はseconds)をセット > expire key 100 (inte
概要 Redisとは メモリ上にKey-Valueストア(KVS)を構築することができるソフトウェアの一つ。 KVSは任意の保存したいデータ(値:value)に対し、対応する一意の標識(キー:key)を設定し、これらをペアで保存するデータベースの一種で、Redisはコンピュータのメインメモリ上にKVSを構築し、外部のプログラムからデータの保存と読み出しができる。 Redisとは - IT用語辞典より抜粋 なぜRedisを使用するのか? ruby on rails - セッションを保存するとき、なぜ、Cookieではなくmemcachedやredisを使用するのでしょうか? - スタック・オーバーフロー Ruby on Rails - redisやmemcashedといったセッションストアの使用シーンがわかりません。(RDBではダメなんでしょうか?)(11303)|teratail Redi
※モデル名にUser以外を使用している場合、それぞれのメソッドの『user』部分を書き換える ex.モデル名がmemberの場合、 before_action :authenticate_member! member_signed_in? current_member member_session before_action :authenticate_member! となる。 以下に各メソッドの補足を書いていきます。 before_action :authenticate_user! コントローラーの先頭に記載することで、そこで行われる処理はログインユーザーによってのみ実行可能となります。 下記の通り記載した場合、記事の一覧、詳細を確認することができるのはログインユーザーのみとなります。 class ArticlesController < ApplicationController b
ここ最近はリファクタリングやより短い書き方を考えてます。 一行でもコードから文字が減るのは嬉しい。 そんなわけで、カラム名が違うだけで、内容同じじゃん・・・って場合のテストの書き方です。 前提条件 カラムの:login, :passwordは半角英数字のみで文字数制限を含んでいます。 ただし、文字数制限は違います。 けど、やってることは同じなので、処理をまとめます。 shared_examples_forの書き方 shared_examples_for 'alphanumeric' do |column_name, min_len, max_len| let(:factory_name) { described_class.name.underscore } let(:record) { build(factory_name) } context "#{column_name}" do c
RSpecのテストをグルーピングして実行できる#shared_examples_forが便利。 Shared example group - Example groups - RSpec Core - RSpec - Relish これを使えばテストコードが簡潔になるのでテストコードの量を減らすことができる。 require "set" shared_examples_for "a collection" do let(:collection) { described_class.new([7, 2, 4]) } context "initialized with 3 items" do it "says it has three items" do collection.size.should eq(3) end end describe "#include?" do context "
よく間違えて add してしまうので、 そうなってしまったときの対処方法です。 $ git reset HEAD sample.txt 以上! これで sample.txt は git のステージングから取り除かれ、 add する前の状態になります。 ファイルの内容は元のままなので、その心配は不要です。 後、ファイル名のところを . とすると、カレントディレクトリ以下全てのファイルを対象として、 add してしまったファイルを、git のステージングから取り除くことができる。 この操作は git に add してステージングに追加したファイルを、 ステージングから取り除く操作であるため、 この操作を行って add ファイルの内容が変わることは無い!無いんだ! とても便利だけど、いざ使い出すと色々なことで詰まってしまい、 自分の行う操作がやって良いことなのかダメなことなのか悩むときも多い g
$ gem search ^bundler$ --all *** REMOTE GEMS *** bundler (1.14.6, 1.14.5, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14.0, 1.13.7, 1.13.6, 1.13.5, 1.13.4, 1.13.3, 1.13.2, 1.13.1, 1.13.0, 1.12.6, 1.12.5, 1.12.4, 1.12.3, 1.12.2, 1.12.1, 1.12.0, 1.11.2, 1.11.1, 1.11.0, 1.10.6, 1.10.5, 1.10.4, 1.10.3, 1.10.2, 1.10.1, 1.10.0, 1.9.10, 1.9.9, 1.9.8, 1.9.7, 1.9.6, 1.9.5, 1.9.4, 1.9.3, 1.9.2, 1.9.1, 1.9.0, 1.8.9, 1
Git における、git commit の取り消し方法や、やり直し操作に関する方法をまとめました。Git はどんなコミットでもすべてを記録していますので、一度間違えたとしても、いつでも昔の記録からもとに戻せ事が保証されています。 取り消しや、やり直し方法をマスターすれば、バージョン管理ツールとしてのメリットを最大限享受することができます。 git commit の取り消し方法、6選 コミットした直後に「あっ、この変更入れ忘れた!」「あっ、いらないファイルを混ぜてコミットしちゃった!」など、確認不足による間違いは、時間に追われるエンジニアに非常にしばしば発生します。そのような間違いコミットは、まだpushしていなければ、容易に取り消したり、その後コミットをやり直すことができます。 コミットの取り消しにまつわるケースを、下記の6種類に分けてご紹介します。 直前の git commit 実行を取
Rubyの定数、注意点についてまとめておく 注意点 Rubyの定数は、多言語とは異なる仕様になっている 異なる仕様について プログラミング言語における定数とは 書き換え不可能 wikipediaで調べてみる 一度初期化するとその内容を変更することはできない。よって、内容が変化しないことが保証される名前が必要なときに使用される。 (https://ja.wikipedia.org/wiki/%E5%AE%9A%E6%95%B0_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)) 定数の内容は変化しない、これはruby以外の言語を学んだ人であれば当たり前のことだろう。 Rubyおける定数とは 書き換え可能 Rubyの定数について詳しくみていく 定義 アルファベット大文字で始まる識別子 例:Abc、ABC、ABc
Rails初心者あるあるで、「bundle install と bundle updateの違いが、分からない」というものがあります。かくいう私も、良く分からないまま過ごしてきてしまったので、ここで一旦調べてみました。 事前知識 bundle installとbundle updateの違いについて、理解するためには、まずgemfile と gemfile.lock の違いについて、そしてBundlerについて学ぶ必要があります。 Bundlerについて Bundlerはgemを管理するためのgemです。Bundlerを使用することでbundle installやbundle updateコマンドを使用することができるようになります。 gemfileについて gemfileはgemをインストールするための「設計図」のようなものです。私たちは、基本この「設計図」に、自分のアプリケーションに必
Bundler とは? 言わずと知れた Gem のパッケージ管理ツールです。 bundler/bundler · GitHub Gemfile に必要なパッケージについて記載し、 bundle install すれば必要なパッケージをすべてインストールしてくれます。 突然の BUNDLED WITH たまたま訳あってローカルで gem update していたところ、突然 Gemfile.lock に下記のような内容が追記されるようになりました。 BUNDLED WITH 1.10.3 どうやら Gemfile.lock の中で bundler 自体のバージョンも管理するようになったようです。 上記自体は bundler の 1.10.0.pre.2 からあったということですが、なかなか bundler 自体を update する機会がなく、今まで目に触れる機会がありませんでした。 今後メン
本ガイドでは、Railsの「エンジン」について解説します。Railsエンジンのきわめて簡潔で使いやすいインターフェイスを用いて、ホストとなるRailsアプリケーションに機能を追加する方法についても解説します。 このガイドの内容: エンジンの役割 エンジンの生成方法 エンジンのビルド方法 エンジンをアプリケーションにフックする エンジン機能をアプリケーションで上書きする 読み込み/設定フックでRailsフレームワークが読み込まれないようにする方法 1 Railsにおけるエンジンの役割 エンジン (engine) は、ホストとなるRailsアプリケーションに機能を提供するミニチュア版Railsアプリケーションとみなせます。この場合、ホストとなるRailsアプリケーションは、実際にはエンジンに「ターボをかけた」ようなものにすぎず、Rails::ApplicationクラスはRails::Engi
設定したりもっと細かい作業をしたい場合は help コマンドを使う。 種類ごとのヘルプをみたい場合は @ をつけるとよい 例えばリスト関連のコマンドを知りたいなら > help @list といった感じ。 以下は解説 keys 登録されている key がわからないと何もできないので、keyの一覧をみる方法 > keys * 引数にはパターンを入力する hogeではじまるものに絞りこみしたい場合は > key hoge* とかする。shell の場合はアスタリスクはエスケープする必要があるのに注意 $ redis-cli keys \* type redis は key に格納された値の種類によって取得コマンドが違うらしい。 値をみるために種類の確認が必要。 hoge というキーがあった場合は > type hoge とする。 返す値としては string list set zset has
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く