2017/8/5 ぎんざRuby会議01 @みんなのウェディング 引用のリンク先などはこちらを参照ください https://medium.com/finc-engineering/ginzaruby01-rails-api-guide-168fe9cf5b4d
〔ABC順〕 active-record-query-trace クエリがどこから呼び出されたかわかるようにバックトレースをログに出力する。 参考: brunofacca/active-record-query-trace: Rails plugin that logs/displays a backtrace of all SQL queries executed by Active Record – GitHub AnnotateGem 参考: ivantsepp/annotate_gem: Add comments to your Gemfile with each dependency’s description – GitHub Gemfile にある Gem の説明を自動でコメントとして追記してくれる Gem – Qiita AnyLogin 参考: igorkasyanchu
この記事は Money Forward Advent Calendar 2018 15日目の記事です。 こんにちは、マネーフォワードでマネーフォワードクラウドの開発をしている @kamille です。 今年の10月に新卒で入社して、今はマネーフォワードクラウドの全体的な課題を解決する横断チームにてRailsエンジニアをしています。 今日はRailsの accepts_nested_attributes_for メソッドについてお話したいと思います。 はじめに 突然ですが皆さん accepts_nested_attributes_for は好きですか?僕は複数リリースの同時保存・更新が超お手軽にできて素敵なコンセプトだなと思います。 でもこのメソッドはあまり評判が良くなく、特にRails生みの親のDHHがaccepts_nested_attributes_forを消したいと言っていたり、代わ
Many Rails programmers prefer Vim to full-blown bulky IDEs like RubyMine. The are several reasons for that but most important (to me at least) is the ability to customize Vim, make it very powerful and at the same time keep it pretty lightweight. So let's have a look at what it takes to set up Vim for a comfortable and productive workflow with Ruby And Ruby On Rails framework. Disclaimer: The setu
こんにちは。日本ではすっかり秋の空が近づいてきました。個人的に夏は暑さが苦手であまり好きではないのですが、終わってしまうとなると毎年どこか寂しい気持ちになります。 一方で、秋はご飯が美味しいので食べる事が好きな僕にとっては一番好きな季節でもあり、結構心が踊っています。笑 さて、前置きは置いといて今回は表題の通り、とあるRails 5.2プロジェクトをRails 6にアップグレードした際に、ActiveRecordのscopingの仕様変更を踏んでしまったのでその対処法をご紹介します。 そもそもscopingとは ActiveRecord::Relation の機能で、引数にブロックを受け取り、その中では、実行時に適用されていたスコープを全クエリでデフォルトで適用する、と言う物になります。 例として、deleted_at (timestamp, nullable) と言うattributeを
はじめに 夏なのに家で冷房を入れることを禁止されているどうも鈴木です。まさに地獄です。 さて、コントーラーやモデルが肥大化する話はRailsを普通に使っていると誰しもが直面する話だと思われます。 例えばUserモデルのように、色々なところから参照されるモデルは地獄みたいなことになってしまいます。地獄は家だけにしてほしいですね。 世間ではサービス層だなんだと言われていますが、何となくapp/servicesなんてディレクトリを作り満足し、後で負の遺産とか言われるのはとても辛いです1。そもそもRails使ってるのはレールに乗るためなので、なるべく賢い人が作ったレールに乗って生きていくのが正義だと思っています2。 ということで、私たちの会社では Trailblazer というgemを使い始めたので、ここで少し紹介します。 もちろん元気よく本番で動いてくれていますよ。 Trailblazerとは?
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Lifecycle of a Rails Request 原文公開日: 2019/05/02 著者: Godfrey Chan サイト: Skylight 日本語タイトルは内容に即したものにしました。画像は元記事の引用です。 2019/10/03: 初版公開 2022/08/02: 更新 参考 以下のサイトで、Railsのリクエストの全ライフサイクルをビジュアル表示で追うことができます。本記事と合わせて参照することで理解が進むと思います。 サイト: Rails Trace rails-trace.chriszetter.comより 本記事は、私達がRailsConf 2019で行ったスピーチのまとめです。スライドはこちらでご覧いただけます。 エディタでコントローラのファイルを開き、アクションメソッドにRubyコードを少々書
Ruby 開発チームに4週間インターン生として参加いたしました、永山 (GitHub: NagayamaRyoga) です。 私は「Ruby中間表現のバイナリ出力の改善」という課題に取り組み、Railsアプリケーションのコンパイルキャッシュのサイズを70%以上削減することに成功しました。以下ではこの課題の概要とその成果について述べたいと思います。 InstructionSequenceの概要 まず、RubyVM 内で実行される命令の中間表現、InstructionSequence (以下 ISeq と省略) について簡単に説明します。 通常の Ruby プログラムは、以下のような手順で実行されます。 ソースコードを構文解析し、抽象構文木を作る。 抽象構文木をコンパイルして、ISeq を作る。 RubyVM (YARV) で ISeq を解釈し、実行する。 ISeq は、このように Ruby
皆さんこんにちは、エンジニアの西尾です。 2019年9月24日(火)、フジテレビ系列のテレビ番組 「セブンルール」 にて弊社代表およびサービスを取り上げていただきました。 テレビ放送開始直後、サイトにはいままでにないアクセスが押し寄せましたが、 システムを落とすことなく、かつパフォーマンスも落とすことなく無事に稼働させることができました。 今回はテレビ放送前に、食べチョク開発チームが行ったパフォーマンス対策を紹介いたします。 開発チームのミッション 放送日が決まった時、代表が一言、Slackにつぶやきました。 サーバーを落とさない 放送中にサーバーは絶対落とさない。 この日から少しずつパフォーマンス対策を始めることにしました。 食べチョクのシステム構成 食べチョクはAWS上で運用しており、構成はとてもオーソドックスなものとなっています。 EC2,ELB,RDS,ElasticCache(R
更新情報: 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
railsをGKE(Google Kubernetes Engine)にデプロイしてみて、クラウド開発ってこんな感じか〜みたいな気持ちになりましょう。 対象(になりそうなひと)rails・GKE・dockerあたりのキーワードがぐぐらなくてもなんとなくわかるmacrailsでの開発はじめてGKEもはじめてコンテナベースの開発もはじめてまあなんでもはじめてでもOKなはず。な状態でもできるような手順にしました。が、そもそもの概念とかはあんまり説明しません。ほかに託します。 いきなりrailsアプリを準備してGKEにデプロイするのは、もうそんなこと出来る人は慣れっこなんでしょ!感がするので、簡単なものからじょじょにステップアップする感じでGKEに向かっていきます。 具体的にどうステップアップしていくかというと ローカル環境でrailsアプリ動かすdocker環境でrailsアプリ動かすKuber
巷で話題の kubernetes ですが、とってもとってもとっつきにくいですよね そんな kubernetes ですが手元で動かすことができたので解説してみます (情報が間違ってたらごめんなさい! ) 目標はこちら kubernetes の後述する基本的な概念を雰囲気理解すること ローカルのクラスタにデプロイして Ruby on Rails ( Rails ) の 「 Yay! 」のページを見ること コードはこちら https://github.com/tkhr0/hello-rails-on-k8s 早速行きましょう 今回構築する環境 図にするとこんな感じです kubernetes 要素を抜くとこんな Ngix + Rails + MySQL のよくある形です http サーバとして Nginx を立てて、 Rails (Puma) にリバースプロキシします DB には MySQL を用
これでもかって言うくらいコピペでKubernetes(Google Kubernetes Engine)に環境変数の設定からRailsアプリケーションのmigrateも考慮したデプロイが動くコマンドを書いていくRailskubernetesPosgreSQLGKEgooglecloud はじめに AWSもKubernetesに対応したEKSを発表しました。今やDockerとKubernetesは切っても切れない関係になっていくと思ってます。 今回は既にKubernetesの使用を前提としているGoogle Kubernetes Engine(GKE)でのRailsアプリケーションのデプロイを書いておきます。ただし、GKEへのデプロイって結構記事はあるんですが、migrateが絡んだ記事や実用になるような記事ってなかなか書いてないなと思い、ここに書いておきます。 初めてKubernetesや
はじめに kubernetes(k8s) クラスタを構築するためのインフラがあり、kubectl コマンドで操作が出来る状態となっていることが前提です。 Rancher を使って構築する方法(勉強用ですが)について安いクラウド環境で RancherOS / Kubernetes を使って勉強用クラスタを作るも参照してみて下さい。 本記事について 色々な k8s の概念についての説明は本家ドキュメント、他記事や、本に書かれていることを参考にしてみて下さい。 この記事では概念の整理はせず、チュートリアル形式でアプリケーションを k8s で動作させることを目的として、なるべく 1 歩ずつ進めつつ概念理解が必要になったタイミングで説明していきます。 チュートリアルが終わった段階で k8s 上で特定のアプリケーションが公開できるようにするための関連知識を一通り理解できるようになることを目指します。
Kubernetesは今日のWebにおいて最もホットな技術であることは間違いありません。コンテナの本番運用面だけでなく、コードベースでアプリケーションを柔軟に操作できることに驚かされます。 Kubernetesは公式ドキュメントが充実しているほか、最近は日本語情報も広まったことで敷居は下がりましたが、それでもインフラ自体に馴染みがない方も多く、その点ですぐに始めづらいというイメージがあるかもしれません。 そこで今回はコピペでRuby on Railsのアプリケーションを最短でKubernetesを動かすまでの道のりを紹介していきます。 Kubernetesが取っつきづらく感じるのはPodやServiceなど独自の用語が登場するためですが、それらのフレーズにはあまり囚われず、手を動かしながらどこがどのように作用しているかを感じ取ってみてください。 はじめに これから動かしていく環境はGKEや
以降の節で順にこれらのコマンドの使い方を説明します。見出しの括弧は旧コマンドです。 また、各節の終わりにリファレンスへのリンクを置いていますが、 少なくとも本稿の執筆時点においては旧コマンドの方が詳細に書かれているので、必要に応じてそちらも参照してください。 なお日本語版のドキュメントにはまだ新コマンド版のリファレンスはありません。 シェルの補完についてdockerのサブコマンドは、 861162a44 のようなハッシュ値や、 romantic_neumann のようにランダムな英単語の組み合わせで自動生成されたコンテナ名をパラメータとして受け取ります。 Docker for Macにはbashやzshでコマンドの補完を行うためのスクリプトが同梱されていますが、 ただインストールするだけでは有効になりません。 補完のための設定については別に記事を書いたのでこちらを参照してください。 bas
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く