Changeset 1223

Show
Ignore:
Timestamp:
01/09/08 00:04:27 (9 months ago)
Author:
has.s..@gmail.com
Message:

Fixes object naming for nested fileds_for. Closes #360

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/merb_helpers/lib/merb_helpers/form_helpers.rb

    r1192 r1223  
    133133        @_obj ||= nil 
    134134        @_block ||= nil 
     135        @_object_name ||= nil 
    135136        obj = obj_from_ivar_or_sym(obj) 
    136137        old_obj, @_obj = @_obj, obj 
    137         @_object_name = "#{@_obj.class}".snake_case 
    138138        old_block, @_block = @_block, block 
     139        old_object_name, @_object_name = @_object_name, "#{@_obj.class}".snake_case 
    139140         
    140141        concat(capture(&block), block.binding) 
    141142 
    142         @_obj, @_block = old_obj, old_block         
     143        @_obj, @_block, @_object_name = old_obj, old_block, old_object_name 
    143144      end 
    144145       
  • plugins/merb_helpers/spec/merb_helpers_spec.rb

    r1192 r1223  
    152152  end 
    153153   
     154  it "should pass context back to the old object after exiting block" do 
     155    @obj2 = FakeModel2.new 
     156    fields_for(:obj) do 
     157      text_control(:foo).should match_tag(:input, :id => "fake_model_foo", :name => "fake_model[foo]", :type => "text") 
     158       
     159      fields_for(:obj2) do 
     160        text_control(:foo).should match_tag(:input, :id => "fake_model2_foo", :name => "fake_model2[foo]", :type => "text") 
     161      end 
     162       
     163      text_control(:bar).should match_tag(:input, :id => "fake_model_bar", :name => "fake_model[bar]", :type => "text") 
     164    end 
     165  end 
    154166end 
    155167