diff --git a/lib/activeadmin/resource_dsl.rb b/lib/activeadmin/resource_dsl.rb index 551cc77..746886a 100644 --- a/lib/activeadmin/resource_dsl.rb +++ b/lib/activeadmin/resource_dsl.rb @@ -18,9 +18,10 @@ def json_editor object.nested_attributes_options.keys.each {|_nested_key| nested_attributes_with_index = params[resource_request_name]["#{_nested_key}_attributes"] next if nested_attributes_with_index.nil? - nested_klass = _nested_key.to_s.singularize.camelize.constantize + nested_klass = object.class.reflect_on_association(_nested_key).class_name.constantize nested_klass.columns_hash.select { |_key, attr| attr.type.in? [:json, :jsonb] }.keys.each do |key| nested_attributes_with_index.each {|_index, nested_attributes| + next unless nested_attributes.respond_to?(:key) next unless nested_attributes.key? key json_data = nested_attributes[key] data = if json_data == 'null' || json_data.blank?