app/helpers/carload/application_helper.rb in carload-0.4.5 vs app/helpers/carload/application_helper.rb in carload-0.5.0
- old
+ new
@@ -7,25 +7,34 @@
not model_class.instance_methods.map(&:to_s).select { |x| x =~ /#{attribute_name}_url/ }.empty?
end
end
def polymorphic? attribute_name
- Dashboard.model(@model_name).associated_models.each_value do |associated_model|
- return associated_model[:name] if attribute_name =~ /#{associated_model[:name]}/ and associated_model[:polymorphic]
+ Dashboard.model(@model_name).associations.each_value do |association|
+ reflection = association[:reflection]
+ return reflection.name if attribute_name =~ /#{reflection.name}/ and reflection.options[:polymorphic]
end
false
end
def image? attribute_name
attribute_name.to_s =~ /image|logo|img/
end
- def id_or_ids associated_model
- case associated_model[:association_type]
- when :has_many
- "#{associated_model[:name]}_ids"
+ def associated_model_name model_name, attribute_name
+ x = attribute_name.gsub(/_ids?$/, '').to_sym
+ Dashboard.model(model_name).associations.each do |name, association|
+ return association[:class_name] || x, name if name.to_s.singularize.to_sym == x
+ end
+ raise 'Should not go here!'
+ end
+
+ def id_or_ids reflection
+ case reflection
+ when ActiveRecord::Reflection::HasManyReflection
+ "#{reflection.name.to_s.singularize}_ids"
else
- "#{associated_model[:name]}_id"
+ "#{reflection.name}_id"
end
end
end
end