the industrial

都内で働くITエンジニアの日記

Ruby

自社サービスのRails4を、Rails5にアップグレードした話

会社のRails4.2.0で動いているプロダクトは、Rails5.2.0へとアップグレードしたので、メモがてら大変だったことなどを書いておこうと思います。 何故やろうと思ったのか Railsをアップグレードすることで便利な機能が追加されたと、得られる嬉しい事がいろい…

Rubyで0始まりの数字は、デフォルトで8進数(基数8)になるよというお話

RSpecでテストケースを書いていたときの話。 expect(hoge_date).to eq Date.new(2018,01,01) ・・・ expect(hoge_date).to eq Date.new(2018,09,01) としたとき、 Date.new(2018,09,01) SyntaxError: (eval):2: Invalid octal digit Date.new(2018,09,01) の…

RSpecで特定のテストケースだけを実行する方法

指定したパスのexampleを実行する。 rspec spec/ rspec spec/controller ファイルを指定すれば、そのファイル内のexampleを実行してくれる。 rspec spec/services/hoge_spec.rb さらに特定のexampleのみ実行したい場合、configに書きを追記。 RSpec.configur…

FactoryBotでassociationアリのデータを作成しようとした時、「ActiveModel::MissingAttributeError: can't write unknown attribute `fk_XXXXXXXX`」といったエラーが出る件について

タイトルだけだと何いってんだか全然わからんですね笑 ちょっと困ってます。 例えばこんなModelがあったとして app/models/Employee.rb class Employee < ActiveRecord::Base # 上司 belongs_to :boss, foreign_key: 'fk_employee_to_boss', optional: true …

FactoryBotが「Failure/Error: config.include FactoryBot::Syntax::Methods」で読み込めなかった話

Rails4からRails5にアップデートをする際、重要ロジックのテストを書いていないことに気づいた。 そこで、改めてRSpecを使おうと思いいろいろ調べている中で、テストデータ作成ツールに FactoryBot を利用することに。 しかし、いくら試せど下記のようなエラ…

ScalaとRubyのコレクションで使える.mapについてちょっと調べてみた

突然ですが 先日、後輩くんがこんな実装をしました。 _nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] _divisible = _nums.select{ |n| n % 2 == 0 } p _divisible # [2, 4, 6, 8, 10] _multiplied = _divisible.map {|n| n * 100 } p _multiplied # [200, 400, 60…

Ruby on RailsでPDF作成&ダウンロード機能を実装

PDFダウンロード機能を実装したのでメモ 環境 ここに作った。 https://github.com/omiend/my_strongest_ror wkhtmltopdf / wicked_pdf PDF生成に利用したGEMは下記。 gem ‘wkhtmltopdf-binary’ gem ‘wicked_pdf’ wicked_pdfはwkhtmltopdfのラッパーで、単純…

ぼくのかんがえたさいきょうのRuby on Rails開発環境

はじめに 6月に新しい会社に来て以来、会社ではRuby on Railsばかり触っている。 RoRの開発・Ruby自体初めてなので(本当はScalaやりたい)、開発環境構築をやってみたのだが、「これ本当に必要なの?」などなど分からないことだらけで、何度かハマった。 …