We've all heard the phrase "Rails doesn't scale". Long running test suites and no standard for implementing multiple databases makes it hard scale monol…
この版のまえがき 改訂版の「Everyday Rails - RSpecによるRailsテスト入門」を手にとっていただき、どうもありがとうございます。改訂版をリリースするまで、長い時間がかかりました。そして、内容も大きく変わりました。本書を読んだみなさんに「長い間待った甲斐があった」と思っていただけると幸いです。 なぜこんなに時間がかかったのでしょうか?前述のとおり、内容は大きく変わりました。本の内容そのものも変わりましたし、Railsにおける一般的なテストの考え方も変わっています。まず後者について説明しましょう。Rails 5.0の登場と同時に、Railsチームはコントローラのテストを事実上非推奨としました。個人的にこれは素晴らしいニュースでした。本書の前の版では説明に 3章 も使っていましたが、私も最初はコントローラのテストを理解するのに非常に苦労したのを思い出しました。そして、最近で
Rails 5.2でActive Storageが使えるようになった。プライベートで作っているRailsアプリケーションをPaperclipからActive Storageに移行してみたのでその記録です。 Active Storageの概要 Railsガイドを読みましょう Active Storage の概要 | Rails ガイド active_storage_blobsというテーブルで画像の情報を保存する 画像本体はS3などに保存 active_storage_attachmentsというテーブルで画像とモデルクラスを対応づける この2つのテーブルを扱うモデルクラスもついてくる 移行手順 PaperclipのGithubリポジトリに以下の文書があるので、だいたいこの通りにやればよい。 paperclip/MIGRATING.md at master · thoughtbot/paper
minne 事業部チーフテクニカルリードの @_shiro16 です。 おかげさまで minne は 1 月 17 日に 5 周年を迎えました。その 1 週間後の 1 月 24 日に Rails4.2 から 5 へのアップグレードを行いました。 そこで今回はアップグレードを行う際に行ったことの一部をご紹介します。 はじめに 今回は基本的なアップグレード手順の説明は省略し、minne ではどのように進めていったかを解説していきます。 アップグレード作業は主にチーフエンジニアの @hsbt と僕の 2 人で進めました。 まず minne がどの程度のコード量なのかをご覧いただこうと思います。 minne の rake stats の結果は以下の通りです。 基本方針 DEPRECATION WARNING は出来るだけ消す 可能なものは積極的に backport 上記のような 2 つの大きな方針
家電メーカーの社内SEとしてキャリアを開始し、プラズマディスプレイの製造工程のシステムや、社内システムの運用、開発エンジニアとして従事。 2009年、事業所閉鎖に伴い、ISPのサーバエンジニアに転職しISPの基幹系サーバである、Radius、DNS、メールシステムなどの導入や監視システム構築、基幹NWの構築、CRMシステムの運用保守を担当。また2009年より産業能率大学通信教育課程へ入学し情報マネジメント学部現代マネジメント学科にて情報をどのように経営や事業に活かすかということを学んでいたが、合コンに行き過ぎて出席日数が足りなくなりながら、5年をかけて卒業。 大学卒業、プログラミングへの思いから、九州通信ネットワーク株式会社を退職し、2014年9月よりGMOペパボ株式会社へ入社し、ムームードメインチームへ配属後、ホスティング事業部チーフテクニカルリードとなり、その後技術基盤チームへ配属、現
This code in rails 5 class PagesController < ApplicationController def action render nothing: true end end results in the following deprecation warning DEPRECATION WARNING: :nothing` option is deprecated and will be removed in Rails 5.1. Use `head` method to respond with empty response body. How do I fix this?
jsonapi-resourcesはこちら cerebris/jsonapi-resources: A resource-focused Rails library for developing JSON API compliant servers. 下準備 インストールまで いつものなのでサクサクいきます。 $ bundle init # Gemfile source 'https://rubygems.org' gem 'rails', '5.0.0.rc1' $ bundle install $ bundle exec rails new . --api # 上書きを確認されるので適当にYesしておく # Gemfile # 以下を追記。 # rubygemsにあるのだとRails5に対応していないのでgithubから取得していることに注意。 gem 'jsonapi-resourc
サービスが成長してテーブルが肥大化してくるとインデックスの追加などを気軽に行うことができなくなってきます。alter tableするためにメンテナンスの時間を取ることもできますが、無停止で変更できるならそれに越したことはありません。 この記事では、Railsで開発されているWebサービスでそういったことを実現するための方法を紹介します。 tl;dr Railsのmigrationを使うのではなく、無停止で alter table するための専用のツールを使いましょう。 alter table したら、整合性が取れるように修正しましょう。 この記事に書かないこと oak-online-alter-tableやpt-online-schema-changeの細かい使い方については説明しません。どちらも公式ドキュメントが充実していますし、説明している良記事がWebにあるので、そちらを参照してくだ
Rails 5から、production environmentでのDB破壊系のtaskの実行を防止する仕組みが入りました。 例えば、production environmentでdb:dropを実行しようとすると、下記のようなエラー(ActiveRecord::ProtectedEnvironmentError)が発生します。 $ RAILS_ENV=production ./bin/rails db:drop rails aborted! ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database If you are sure you want to continue, run the same co
The way that bind values are currently stored on Relation is a mess. They can come from `having`, `where`, or `join`. I'm almost certain that `having` is actually broken, and calling `where` followed by `having` followed by `where` will completely scramble the binds. Joins don't actually add the bind parameters to the relation itself, but instead add it onto an accessor on the arel AST which is un
The page navigation is complete. You may now navigate the page content as you wish.
エクスキューズとか 正直な話をすると、Webフレームワーク自体に関する興味は以前に比べて失われてきているので、最新のSinatraの細かいコミットまでは追っていない。 だが、2年強ほど Sinatra/Padrino 界隈を追いかけてきて得た知見と言うか考えについてまとめるのは一定の価値がある、少なくとも自分に取っての価値は非常に大きいと思うのでここに書いていきたい。 副次的には、ミスコンセプトによってSinatraを利用して、結果必要の無いイメージの悪化を招く事態を一件でも減らせればと思う。 Sinatraはmicroframework、あるいは「フレームワークではない」 公式の説明にある通りである。 具体的にどういうことかと言うと、Sinatra単体ではウェブサービスに必要な要件を満たさないかもしれないと言う話である。Sinatraが持っていないものについては、Sinatra以外の場所
仕事で Rails を使ったサービスを担当し始めて約1ヶ月半、Ruby と Rails にもだいぶ慣れてきたので、ここまでどうやって勉強してきたか書いておこうと思います。いや、まだ初心者もいいところなのですが、そのうち忘れてしまって今しか書けなそうなので、書いておきます。 とはいえ、こういう情報は時間の経過と共に意味のないものになってしまいがちなので、なるべく時間に左右されない本質的なことを織り交ぜながら書いていきたいと思います。 irb(main):002:0> Date.new(2014,4,4) - Date.new(2014,2,19) => (44/1) 当時の知識 パーフェクト Ruby を途中まで読んだ Ruby on Rails Tutorial の Chapter 4 Rails-flavored Ruby をやっていた という程度。 パーフェクトRuby (PERFEC
今年の4月に株式会社paperboy&co.へ入社し、気がつけば年の瀬までやってきた。 次世代・4期生の内定式はもう2ヶ月以上も前のことで、既に新卒5期生のための採用ページがオープンしている。 新卒採用2015 | 株式会社paperboy&co. 創立12年目を迎えた私たちペパボは2015年度新卒入社する新たな仲間を募集します! 今後さらなる成長を遂げるために、私たちとともに「もっとおもしろくできる」を本気で取り組んでくれる仲間との出会いを楽しみにしています! 2013年を省みる 学び続けることを選んだ 私はペパボ3回目の新卒採用に選んでいただいた。そして2013年、新卒エンジニアとして研修にOJTにと、多くのことを学ばせていただいた。 もちろん、ソフトウェアエンジニアという、果てるまで学び続ける道を選んだのだから、「学び」は終わらない。 羽を休めることはあっても、次に飛ぶ瞬間を考え続け
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く