Rails

Railsでクラスインスタンス変数とクラス変数を利用する前に、設計を見直そう

下記のようなクラスインスタンス変数を定義した後に、値を確認する方法としてAPI::APIBase.class_eval { puts @remote_host }があります。class_evalは、Moduleクラスのインスタンスメソッドでブロック内でレシーバ定義式の中であるように振舞います。 ENV['…

新規・更新を条件分岐できるpersisted?のソースコードを読んでみた

環境やバージョン $rails -v Rails 5.2.3 $ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18] ソースコードリーディング Returns true if the record is persisted, i.e. it's not a new record and it was not destroyed, otherwise ret…

Active Record joinsについて

Active Recordのjoinsとmergeについて調査したレポートです。 準備 まずは、migrationファイルを設定 class CreateUserPlans < ActiveRecord::Migration[5.2] def change create_table :user_plans do |t| t.integer :user_id t.integer :plan_code end end …

erbをslimにconvertする

Gemfileにて下記記述後、 bundle install した状態を前提。 gem 'html2slim' gem 'slim' html2slimを使います。 # erb2slim -h Usage: erb2slim INPUT_FILENAME_OR_DIRECTORY [OUTPUT_FILENAME_OR_DIRECTORY] [options] --trace Show a full traceback on er…