fix for bug 123
This commit is contained in:
parent
a566ea0f4f
commit
3d7742ea43
|
@ -34,17 +34,22 @@ module CanCan
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns a hash of conditions, pluralizing the table names
|
def tableized_conditions(c=nil)
|
||||||
def tableized_conditions
|
conditions = c || @conditions
|
||||||
if @conditions
|
if conditions
|
||||||
@conditions.inject({}) do |tableized_conditions, (name, value)|
|
conditions.inject({}) do |tableized_conditions, (name, value)|
|
||||||
name = name.to_s.tableize.to_sym if value.kind_of? Hash
|
if value.kind_of? Hash
|
||||||
tableized_conditions[name] = value
|
name = name.to_s.tableize.to_sym
|
||||||
tableized_conditions
|
value = tableized_conditions(value)
|
||||||
|
end
|
||||||
|
tableized_conditions[name] = value
|
||||||
|
tableized_conditions
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def only_block?
|
def only_block?
|
||||||
conditions_empty? && !@block.nil?
|
conditions_empty? && !@block.nil?
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,6 +30,16 @@ describe CanCan::CanDefinition do
|
||||||
@conditions[:foo] = {:bar => {1 => 2}}
|
@conditions[:foo] = {:bar => {1 => 2}}
|
||||||
@can.associations_hash.should == {:foo => {:bar => {}}}
|
@can.associations_hash.should == {:foo => {:bar => {}}}
|
||||||
end
|
end
|
||||||
|
it "should tableize correctly for absurdly complex permissions" do
|
||||||
|
@conditions[:unit] = {:property=>{:landlord=>{:weasle_id=>560}}}
|
||||||
|
@conditions[:test] = 1
|
||||||
|
@can.tableized_conditions.should == {:units => {:properties => {:landlords=>{:weasle_id=>560}}}, :test => 1}
|
||||||
|
end
|
||||||
|
it "should tableize correctly for complex permissions" do
|
||||||
|
@conditions[:unit] = {:property=>{:landlord_id=>560}}
|
||||||
|
@conditions[:test] = 1
|
||||||
|
@can.tableized_conditions.should == {:units => {:properties => {:landlord_id=>560}}, :test => 1}
|
||||||
|
end
|
||||||
|
|
||||||
it "should return table names in conditions for association joins" do
|
it "should return table names in conditions for association joins" do
|
||||||
@conditions[:foo] = {:bar => 1}
|
@conditions[:foo] = {:bar => 1}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user