module ModelForm

Constants

CONFIG_FILE

Public Instance Methods

allowed_attributes(resource) click to toggle source
# File lib/model_form.rb, line 38
def allowed_attributes(resource)
  config = load_config
  config.fetch(resource.class.to_s.downcase, {}).fetch("allowed_attributes", [])
end
global_config(resource, config) click to toggle source
# File lib/model_form.rb, line 29
def global_config resource, config
  # config.fetch("global_ignored_attributes", [])
  config.fetch("global", {}).fetch("ignored_attributes", [])
end
ignored_attributes(resource) click to toggle source
# File lib/model_form.rb, line 24
def ignored_attributes resource
  config = load_config
  (global_config(resource, config) + model_config(resource, config)).uniq
end
load_config() click to toggle source
# File lib/model_form.rb, line 43
def load_config
  file = "#{Rails.root}#{CONFIG_FILE}"
  base_file = "../generators/templates/model_form.yml"
  if File.exists?(file)
    YAML.load_file(file)
  else
    YAML.load_file File.expand_path(base_file, __FILE__)
  end

end
model_config(resource, config) click to toggle source
# File lib/model_form.rb, line 34
def model_config resource, config
  config.fetch(resource.class.to_s.downcase, {}).fetch("ignored_attributes", [])
end
model_form(resource, options={}) click to toggle source

takes ActiveRecord object

# File lib/model_form.rb, line 5
def model_form resource, options={}
  default_options = {:html => { :class => 'form-horizontal' }}
  default_options.deep_merge! options
  simple_form_for resource, default_options do |f|
    visible_fields(resource).each {|attr_name| concat f.input(attr_name) }
    concat f.button(:submit)
    concat cancel_link(resource)
  end
end
visible_fields(resource) click to toggle source
# File lib/model_form.rb, line 15
def visible_fields resource
  (resource.attribute_names - ignored_attributes(resource)) | allowed_attributes(resource)
end