From aad913c5a6641f00b946c7a7a13b23a5667d0000 Mon Sep 17 00:00:00 2001 From: "M.Shibuya" Date: Sun, 4 Oct 2015 13:15:42 +0900 Subject: [PATCH] does not exist unless ed. Closes #1674 --- .../config/fields/factories/paperclip.rb | 2 +- .../config/fields/types/paperclip_spec.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/rails_admin/config/fields/factories/paperclip.rb b/lib/rails_admin/config/fields/factories/paperclip.rb index 4683bce6dc..90271f1654 100644 --- a/lib/rails_admin/config/fields/factories/paperclip.rb +++ b/lib/rails_admin/config/fields/factories/paperclip.rb @@ -5,7 +5,7 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields| extensions = [:file_name, :content_type, :file_size, :updated_at, :fingerprint] model = parent.abstract_model.model - if (properties.name.to_s =~ /^(.+)_file_name$/) && defined?(::Paperclip) && model.attachment_definitions && model.attachment_definitions.key?(attachment_name = Regexp.last_match[1].to_sym) + if (properties.name.to_s =~ /^(.+)_file_name$/) && defined?(::Paperclip) && model.try(:attachment_definitions) && model.attachment_definitions.key?(attachment_name = Regexp.last_match[1].to_sym) field = RailsAdmin::Config::Fields::Types.load(:paperclip).new(parent, attachment_name, properties) children_fields = [] extensions.each do |ext| diff --git a/spec/rails_admin/config/fields/types/paperclip_spec.rb b/spec/rails_admin/config/fields/types/paperclip_spec.rb index 8975cacac0..107eed6a93 100644 --- a/spec/rails_admin/config/fields/types/paperclip_spec.rb +++ b/spec/rails_admin/config/fields/types/paperclip_spec.rb @@ -2,4 +2,17 @@ describe RailsAdmin::Config::Fields::Types::Paperclip do it_behaves_like 'a generic field type', :string_field, :paperclip + + context 'when a *_file_name field exists but not decleared as has_attached_file' do + before do + class PaperclipTest < Tableless + column :some_file_name, :varchar + end + RailsAdmin.config.included_models = [PaperclipTest] + end + + it 'does not break' do + expect{ RailsAdmin.config(PaperclipTest).fields }.not_to raise_error + end + end end