lib/extensions/has_one.rb in fast_jsonapi-1.0.17 vs lib/extensions/has_one.rb in fast_jsonapi-1.1.0
- old
+ new
@@ -1,16 +1,22 @@
-require 'active_record'
+# frozen_string_literal: true
-::ActiveRecord::Associations::Builder::HasOne.class_eval do
- # Based on
- # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/collection_association.rb#L50
- # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11
- def self.define_accessors(mixin, reflection)
- super
- name = reflection.name
- mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1
- def #{name.to_s}_id
- association(:#{name}).reader.id
- end
- CODE
+begin
+ require 'active_record'
+
+ ::ActiveRecord::Associations::Builder::HasOne.class_eval do
+ # Based on
+ # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/collection_association.rb#L50
+ # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11
+ def self.define_accessors(mixin, reflection)
+ super
+ name = reflection.name
+ mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1
+ def #{name}_id
+ association(:#{name}).reader.try(:id)
+ end
+ CODE
+ end
end
+rescue LoadError
+ # active_record can't be loaded so we shouldn't try to monkey-patch it.
end