module Engine2::ActionModelSupport
Public Instance Methods
hide_pk()
click to toggle source
# File lib/engine2/action.rb, line 335 def hide_pk hide_fields *assets[:model].primary_keys end
node_defined()
click to toggle source
while prnt && prnt.*.assets[:model] == model prnt = prnt.parent end m = prnt.*.assets[:model] m ? m.name : nil
end
Calls superclass method
# File lib/engine2/action.rb, line 354 def node_defined super # p_model_name = parent_model_name model = @assets[:model] at = action_type case at when :list, :star_to_many_list, :star_to_many_link_list, :star_to_many_field, :star_to_many_field_link_list # :many_to_one_list model.many_to_one_associations.each do |assoc_name, assoc| unless assoc[:propagate] == false # || p_model_name == assoc[:class_name] dc = model.type_info[assoc[:keys].first][:decode] node.run_scheme :decode, model, assoc_name, dc[:search] end end end case at when :modify, :create model.many_to_one_associations.each do |assoc_name, assoc| unless assoc[:propagate] == false # || p_model_name == assoc[:class_name] dc = model.type_info[assoc[:keys].first][:decode] node.run_scheme :decode, model, assoc_name, dc[:form] end end end case at when :list #, :star_to_many_list, :many_to_one_list # list dropdowns model.one_to_many_associations.merge(model.many_to_many_associations).each do |assoc_name, assoc| unless assoc[:propagate] == false node.run_scheme :star_to_many, :"#{assoc_name}!", assoc end end end case at when :modify, :create model.type_info.each do |field, info| case info[:type] when :blob_store node.run_scheme :blob_store, model, field when :foreign_blob_store node.run_scheme :foreign_blob_store, model, field when :file_store node.run_scheme :file_store, model, field when :star_to_many_field assoc = model.association_reflections[info[:assoc_name]] # info[:name] ? raise E2Error.new("Association '#{info[:assoc_name]}' not found for model '#{model}'") unless assoc node.run_scheme :star_to_many_field, assoc, field end end end end
pre_run()
click to toggle source
Calls superclass method
# File lib/engine2/action.rb, line 310 def pre_run if !(mdl = @assets[:model]) act = node begin act = act.parent raise E2Error.new("Model not found in tree for node: #{node.name}") unless act mdl = act.*.assets[:model] end until mdl if asc = @assets[:assoc] @assets[:model] = asc.associated_class # raise E2Error.new("Association '#{asc}' for model '#{asc[:class_name]}' not found") unless @assets[:model] else @assets[:model] = mdl asc = act.*.assets[:assoc] @assets[:assoc] = asc if asc end end # @meta[:model!] = assets[:model] # @meta[:assoc!] = assets[:assoc] ? assets[:assoc][:name] : nil # @meta[:action_class!] = self.class super end
show_pk()
click to toggle source
# File lib/engine2/action.rb, line 339 def show_pk show_fields *assets[:model].primary_keys end
unsupported_association(assoc)
click to toggle source
# File lib/engine2/action.rb, line 408 def unsupported_association assoc raise E2Error.new("Unsupported association: #{assoc}") end