Module: Uploadcare::Rails::ActionView::FormBuilder

Defined in:
lib/uploadcare/rails/action_view/uploader_tags.rb

Instance Method Summary collapse

Instance Method Details

#uploadcare_field(method, options = {}) ⇒ Object

smart method to detect wich of - file or group - pesent and then choose either multiple or single-file upload. not that this method WILL override custom settings in order to prevent method collisions



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/uploadcare/rails/action_view/uploader_tags.rb', line 62

def uploadcare_field(method, options = {})
  if @object.try("has_#{ method }_as_uploadcare_file?".to_sym) &&
      !@object.try("has_#{ method }_as_uploadcare_group?".to_sym)
    uploadcare_single_uploader_field(method, options)
  elsif !@object.try("has_#{ method }_as_uploadcare_file?".to_sym) &&
      @object.try("has_#{ method }_as_uploadcare_group?".to_sym)
    uploadcare_multiple_uploader_field(method, options)
  else
    uploadcare_uploader(method, options)
  end
end

#uploadcare_multiple_uploader_field(method, options = {}) ⇒ Object

forse-set the data-multiple=“true” for uploader



52
53
54
55
56
# File 'lib/uploadcare/rails/action_view/uploader_tags.rb', line 52

def uploadcare_multiple_uploader_field(method, options = {})
  options[:uploadcare] ||= {}
  options[:uploadcare][:multiple] = true
  uploadcare_uploader(method, options)
end

#uploadcare_single_uploader_field(method, options = {}) ⇒ Object

forse-set the data-multiple=“false” for uploader



45
46
47
48
49
# File 'lib/uploadcare/rails/action_view/uploader_tags.rb', line 45

def uploadcare_single_uploader_field(method, options = {})
  options[:uploadcare] ||= {}
  options[:uploadcare][:multiple] = false
  uploadcare_uploader(method, options)
end

#uploadcare_uploader(method, options = {}) ⇒ Object

call uploadcare_uploader field for form object none of options will be overriden and given as-is



37
38
39
40
41
42
# File 'lib/uploadcare/rails/action_view/uploader_tags.rb', line 37

def uploadcare_uploader(method, options = {})
  @template.
    uploadcare_uploader_field(
      @object_name, method, objectify_options(options)
    )
end