first_or_create caches the existing scope and applies to the model callbacks

We were debugging one issue in our application which was caching the scope we had in where clause for first_or_create in model callbacks - and found one interesting issue - Theconditions in the where clause were cached in after_create callback if we use where().first_or_create, please check example below - Example: Contact.where(first_name: 'Kiprosh').first_or_create Contact Model: after_create :sanitize def sanitize Contact.where(creator_id: 123).solr_index end This should fire Contact.where(creator_id: 123) but instead fires Contact.where(first_name: 'Kiprosh', creator_id: 123) On further

Gem JSON - Error installing gem with native extension for Ruby 2.2.2

We recently upgraded one of our app to Ruby 2.2.2 Bundle installed failed ...... crying about well known issue of Error installing gem with native extension, but this time for Gem json -v 1.8.3 Detailed error shows Fetching: json-1.8.3.gem (100%) Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby -r ./siteconf20151209-13741-vqcxt1.rb extconf.rb creating Makefile make "DESTDIR=" clean make "DESTDIR=" compiling generator.c linking shared-object json/ext/generator.so /usr/