handle deeply nested conditions properly in active record adapter - closes #246

This commit is contained in:
Ryan Bates
2011-01-20 10:12:46 -08:00
parent 5c4c179c5a
commit f9ad4858f5
2 changed files with 22 additions and 3 deletions

View File

@@ -31,12 +31,13 @@ module CanCan
end
end
def tableized_conditions(conditions)
def tableized_conditions(conditions, model_class = @model_class)
return conditions unless conditions.kind_of? Hash
conditions.inject({}) do |result_hash, (name, value)|
if value.kind_of? Hash
name = @model_class.reflect_on_association(name).table_name
value = tableized_conditions(value)
association_class = model_class.reflect_on_association(name).class_name.constantize
name = model_class.reflect_on_association(name).table_name
value = tableized_conditions(value, association_class)
end
result_hash[name] = value
result_hash