You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
はじめに 実際に運用していた時に非同期にしていた主な処理は下記のようなものがあります。 iOS Android の push 通知の送信処理 ログの作成 様々な外部 API の呼び出し 非同期で更新しても問題ないデータの更新 Sidekiq is なに sidekiqは非同期処理を実現する gem 他にも Ruby で非同期処理を実現できる有名な gem には resque や delayed_job 等がある。 sidekiq.org Enterprise版等もありますが、 今回はOSS版を使用している前提でのお話しです。 他の非同期処理が可能な gem との簡単な比較 FAQ · mperham/sidekiq Wiki · GitHub この内容は結構真実を語っていることを最近知った Sidekiq Redis マルチスレッド リトライ処理あり おしゃれなダッシュボード Resque
ActiveJobのバックエンドと、永続化先としてRedisが好まれる理由Rails 4.2で、ActiveJobというクラスが導入されました。 これ以前より、Railsで非同期処理を行う際にはResqueやSidekiq、Delayed Jobなどが広く使われていましたが、 ActiveJobはジョブを記述するためのインタフェースを抽象化して、 ジョブの実装を変えること無くジョブランナーを切り替えることを可能にするものです。 なおActiveJobにおいては、バックエンドを指定しなければジョブは非同期実行しようとしても即座に実行されます。 Rails 4.2.0時点では、ActiveJobのバックエンドとして以下のページにある9つのいずれかを使用できます。 ActiveJob::QueueAdapters Backburner Delayed Job Qu Que queue_class
ベースにこれを使う。 https://github.com/holli/auto_strip_attributes gem "auto_strip_attributes", "~> 2.0" で、これだけだと全角スペースには対応してないけど、さいわい好きな処理を挟めるフィルター機能があるのでそれを使う。っていうか、これ使うともう別にstripじゃなくてもなんでもよくなるっていうか。 config/initializers/auto_strip_attributes.rb AutoStripAttributes::Config.setup do set_filter strip_zenkaku: false do |value| value.gsub(/(^(\s| )+)|((\s| )+$)/, '') unless value.nil? or !value.kind_of?(Strin
Strip#stripを使うだけでは半角スペースとか改行文字しか取り除けないので、before_validation時に全角スペースを取り除く方法を考える。 ちなみに Ruby は 2.1.2、Rails は 4.1.0 を前提に書いてます。 auto_strip_attributes の導入 auto_strip_attributesという gem があったのでとりあえず使ってみる。 Gemfile に書いて、bundle installする。 gem "auto_strip_attributes", "~> 2.0" こうやって使うっぽい。 class User < ActiveRecord::Base # Normal usage where " aaa bbb\t " changes to "aaa bbb" auto_strip_attributes :nick, :commen
こんにちは、鈴木です。 Rails の便利なライブラリをシリーズでご紹介してみたいと思います。 今回は「N+1 問題」を検出してくれるライブラリ、bullet です。 bullet (http://github.com/flyerhzm/bullet) N+1 問題 N+1 問題とは、OR マッパーを使用しているときに発生しがちな問題です。 何かの一覧画面を作成しているときに、 一覧に表示するデータを取得するために SELECT を 1 回実行(N レコード返される) 各データの関連データを取得するために SELECT を N 回実行 データベースアクセス(SELECT)が合計 N+1 回も実行される(JOIN して 1 回の SQL で取得した方が効率的) というものです。 具体的なコードで考えてみましょう。 例として店舗の一覧画面を作成しているとします。 関係するモデルは以下の通りです
Webアプリケーションには検索機能がつきものだと思いますが、場合によっては作るのがちょっと面倒なときがあります。例えば、1対多の親子関係を持つモデルで、子供のレコードを検索する場合に、親を特定した上で検索を行う場合などです。ちょっと具体例で考えてみましょう。 Customer(顧客)とSale(売上)の2つのモデルがあるとします。2つのモデルは1対多の関連があり、Customerが複数のSaleを所有しています。この状況下におけるのSaleの検索画面を考えてみます。 検索条件として、『Customer(顧客)』『Buy on(購入日)』『Product(商品名)』の3つを用意してみました。ここで注目してほしいのはCustomerです。SaleはCustomerに紐付いているので、例えば「Johnnyさんの売上一覧が見たい」という場合には、Customerセレクトボックスから”Johnny”
最近、実際に使っていて便利だと思ったものをまとめて紹介します! 他にも便利なものがいっぱいあって迷いましたが、とりあえず今回は7つに絞って紹介します! 【1】Better Errors Rails のエラー画面をわかりやすく Better Errors は標準のRails エラーページをさらに使いやすいエラーページに置き換えてくれます。 Rails の標準のエラー画面はこんな感じ↓ですが、 Gemfile に Better Errors を書き加えてインストールすると、 こんな感じ↓の画面に変えてくれます。 どこでエラーが起こっているのか表示してくれるので、エラーを見つけるのに役立ちます。 Rails のほかにも、Rack ミドルウェアとしての Rack app で使うのにも適しているそうです。 次の binding_of_caller とセットで使うととっても便利です。 【2】bindi
ActiveDecoratorを導入したきっかけ Helperにグローバル関数っぽいメソッドを追加するのが嫌だ Modelに表示に関するメソッドを増やすのが嫌だ ActiveDecoratorのGemをいれる gem 'active_decorator' amatsuda/active_decorator https://github.com/amatsuda/active_decorator Decoratorファイルを作る 普通に作ってもいいですがgeneratorが用意されています。 rails g decorator user /app/decorator/user.rbというファイルが作られます。このモジュールは自動でUserモデルにMix-inされます。(しかもViewのコンテキストの時だけ!) 例 公式にもあるサンプルです。姓と名を繋げてフルネームにするとか、linkのメソッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く