Front Line of Frontend − Forkwell Meetup #2 発表資料 http://forkwell.connpass.com/event/42527/
Front Line of Frontend − Forkwell Meetup #2 発表資料 http://forkwell.connpass.com/event/42527/
最近、Rails界隈でDocker使い始めました、という話を聞く機会が増えてきたので、自分が開発環境整備用に構築したDockerの設定をまとめておく。 ちなみに、production運用については以前書いたので適当に探してくださいw 結論から書いておくと、volumeをちゃんと活用すればいい、ってだけの話です。 まず、本番用と開発用のDockerfileは分けた方が良い。一つでやろうとするとどうにも無理がでるので。 自分はDockerfileとDockerfile-devというものを用意している。 docker-composeはほぼ必須です。少なくともrailsプロセスとDBだけでも二つは必要だし、Dockerfileを分けてると事故るので。 Dockerfileはこんな感じ。 FROM mybase:ruby-2.3.1-debian RUN echo "deb http://http.
The document discusses issues with default_scope in ActiveRecord when joining tables. Default scopes add conditions automatically that can't easily be removed. The presenter demonstrates different ways to try removing the default scope condition, such as unscoped, except, and unscope, but these don't work when includes or joins are used. The solution is to set the default_scopes array to empty for
:network_authentication_requiredちなみにこれのRuby元コードはどこにあるかというとrack/rackの/lib/rack/utils.rbにあります。 HTTP_STATUS_CODES = { 100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-Status', 208 => 'Already Reported', 226
更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基本的には変わらないと思います。リンクは可能なものについては日本語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive
いつのまにか、Rails3+1.9.2というモテコンビで仕事をやっております。で、Rails3から入った新機能として、SexyValidationというのができたので、それを使ってみました。 Sexy Validationとは、いままでのRailsのvalidationの書き方とは違い、Modelに対してのvalidationがスッキリ書けるようになりました。例えば、titleカラムを持つPostというModelがあるときに、title要素は必須なんだというvalidationを書こうとすると、以下のようになります。 class Post < ActiveRecord::Base validates :title, :presence => true end 今迄の validates_presence_of :name よりわかりやすいのではないでしょうか。 独自のvalidationを
Railsではバリデーション(Validation)という仕組みがあります。 フォームなどでユーザーからの入力値をDBに保存する前にその値が正しいものかモデル層で(システムとして許可している値か)を検証する仕組みです。 バリデーションの基本的な流れ、バリデーションの定義とバリデーションのテスト方法、バリデーションのスキップなどのバリデーションの基本についてまとめました。 動作確認 Rails 4.1 ActiveRecord 4.1 shoulda-matchers 2.6.3 目次 1. Railsでのバリデーションの流れ 2. バリデーションを定義する 2.1. 存在チェック(presence) 2.2. 一意性(ユニーク制約)のチェック(uniqueness) 2.3. 長さのチェック(length) 2.4. フォーマットのチェック(format) 2.5. 数値の値チェック(nu
Custom ValidatorのテストについてはRailsでCustom validatorをテストするにて言及されている. 特定のModelに依存したテストを書くのはおかしな話だからダミーのクラスを用意しよう!みたいな感じ. let(:model_class) do Struct.new(:url) do include ActiveModel::Validations def self.name 'DummyModel' end validates :url, full_http_url: true end end - RailsでCustom validatorをテストする - Qiita ただ,これを各Validator Spec毎に毎回書くのは面倒だなーと思う.サボりたい. RSpec::ValidatorSpecHelper ということで,Validatorのテストで手抜きす
これは何? レスポンスタイムが遅くて辛いけど原因が特定できないときに役立つツールをまとめてみました Rails以外でも使えるものも一緒くたに書いているけど、気にしない! やらないこと それぞれのツール詳細な説明 気が向いたら個別記事を書く 環境 Rails 4.2.* ruby 2.3.* New Relic パフォーマンス監視サービス 運用フェイズ アクション実行時にどの処理にどれだけ時間が掛かったかをメトリクス収集してくれる 参考 newrelic - New Relic の各製品紹介: New Relic ってアプリケーションパフォーマンス監視ツールじゃないの? - Qiita 以降のツールは基本的には開発、テスト時に使用するやつです rack-mini-profiler パフォーマンス計測ツール(gem) アクション実行時に、ブラウザにレンダリングに掛かった処理の時間を表示してくれ
Redis を使って応答時間を半分にした話 はじめにはじめまして。 5月にFiNCに入社し、サーバーサイドの Rails エンジニアをやっている亀田と申します。 今回は、Redis を使ってチャットのパフォーマンスを改善した話について書きたいと思います。 チャットで起きていたパフォーマンス問題FiNCアプリにはチャット機能があります。ユーザー同士のコミュニケーションにも使えますし、お得情報の配信やユーザーのサポートなどでも利用しています。 その中で、ユーザーサポートの社内オペレーション用ツールに、(業務に支障が出るレベルではないものの)表示が重いという問題が発生していました。具体的には、対象となるルームのレコードを取得するために数百ミリ秒かかっており、レスポンスを返すまでに合計で1秒前後かかっているという状況でした。 分析をしてみたところ、インデックスを使って対象となるレコードを取得した後
この記事は rails newの後に毎回お決まりのgemを入れたり初期設定をするのが面倒だなと思っている方が対象です 記事を読み終えると、自分でテンプレートを作ってお決まりの手順を自動化することができるようになります とりあえずあとで読もう、という方はこちら => はじめに こんにちわ!クライアントワークチームの@hilotterです。 普段は主にRailsを使ったキャンペーンサイトの開発を行っています。 早速ですがみなさん rails new してますか? Railsでアプリケーション開発を行う際にまず実行するのが rails new ですね。 ただ、rails newの後、すぐにアプリケーションコードの実装開始かというとそうではなくて、「テストのためにrspecを入れよう」とか、「unicornの設定をしよう」というように、開発を便利にしてくれる様々なgemをインストールしたり、gem
はじめに Railsのアプリケーションを作成していると、同じようなモデル(STIを使っているとよくありますよね)、同じようなコントローラ(RESTfulにすればするほど、コントローラは似てきますよね)が増えてきます。新しいモデルやコントローラを作るときに、コピー&ペーストしたあと、エディタでクラス名を置換し始めたら、カスタムgeneratorを作成するチャンスです。 カスタムgeneratorはめっちゃ簡単に作成できます。しかも、特定のアプリケーションの開発ノウハウ(アクションの作り方やRSpecの記述内容)を動作するプログラムとして記述することができます。 というわけで、カスタムgeneratorの作成方法を説明します...とおもいきや、Rails Guide (http://guides.rubyonrails.org/generators.html) に詳細な説明がありますので、細か
scaffoldで生成されるものをちょっとカスタマイズしたいなーってときあるじゃないですか。 出力内容をカスタマイズするならlib/templatesにファイルを置くだけでいけるのですが、出力処理そのものをカスタマイズするのはどうやるんだろうと思い調べてみた。 まずは普通にGeneratorを自作してみる デフォルトのcontroller_generatorを拡張してみる まずは普通にGeneratorを自作してみる ひとまず適当なRailsアプリ上でGeneratorを作ってみます。 Railsアプリを生成。 $ rails new generator-sample $ cd generator-sample $ bundle install カスタムGeneratorを生成する。これだけでGeneratorのひな形が出来上がります。 $ rails generate generator
井原(@ihara2525)です。 以下のような、インスタンスが変更されるとActivejobでElasticsearchのインデックスを更新する処理があり、そのテストを書きたい!ということでやってみました。 after_commit -> { ElasticsearchIndexerJob.perform_later('index', self) if published? }, on: :create ActiveJob::TestHelperという便利なヘルパが用意されているので、まずはそれをinclude。 spec/support/active_job.rb RSpec.configure do |config| config.include ActiveJob::TestHelper end ジョブが保存される場合はその内容をチェック、保存されない場合はキューが空であることをテ
最近RubyとReact.jsをよく利用していて、Rubyで扱っている値をJSONとして表現したいケースが増えてきた。こういうのどうやっていますかと人に聞きたいので、自分はこうやっていますよというのを説明のためにまとめておくことにする。 概観 自分の場合、次のような方法で実装することが多い。 JSONとして表現したいオブジェクトをコンストラクタで受け取るクラスを定義する クラスに #as_json を定義して適当なHashを返すようにする Object#to_json が再帰的に #as_json を利用するようにする (ActiveSupportがやってくれる) コード 具体的には、以下のようなクラスをつくっている。これは最近つくっている掲示板での例で、Megaboard::Resources::Comment はコメントのJSON表現のためのクラスである。いわばコメントのJSON表現に
All slide content and descriptions are owned by their creators.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く