Method: Forcast::Controller::Relacion#deep_relation

Defined in:
lib/forcast/controllers/controller/relacion.rb

#deep_relationObject



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/forcast/controllers/controller/relacion.rb', line 94

def deep_relation

	return @model unless request.request_method_symbol == :get 
	rel = []
	params.keys.map { |val|  rel.push(val.chomp('_id')) if val.include?('_id') && val != 'model_id' && val != 'modelo_id' && val != 'modelo'}
	rel = rel.last
	#Entender bien cuando se produce el Trigger, si la url es 
	#/usuarios el last es action, si es /usuario/:id es id
	#ademas si  /usuario limit=1 envio parametos el last key es igual a usuario
	#entonces compruebo el largo de los params
	return @model if rel == nil || rel == 'action' || rel == 'id' || params.keys.length > 7
	return @model if comprobar_relacion(:belongs_to, rel)
	init = c_to_m(rel)
	i = 0
	arr = []
	arr.push(rel)
	comp = model.name.to_s.downcase!
	catch :exit do
		deep_deep_relation(init,comp,i,arr)
	end
	return fetch_from_relations_model(arr,rel)
end