Ticket #360: fix_form_helper_scope_2.patch
| File fix_form_helper_scope_2.patch, 1.8 kB (added by j.naga..@gmail.com, 11 months ago) |
|---|
-
lib/merb_helpers/form_helpers.rb
old new 132 132 def fields_for(obj, attrs=nil, &block) 133 133 @_obj ||= nil 134 134 @_block ||= nil 135 @_object_name ||= nil 135 136 obj = obj_from_ivar_or_sym(obj) 136 137 old_obj, @_obj = @_obj, obj 137 @_object_name = "#{@_obj.class}".snake_case138 138 old_block, @_block = @_block, block 139 old_object_name, @_object_name = @_object_name, "#{@_obj.class}".snake_case 139 140 140 141 concat(capture(&block), block.binding) 141 142 142 @_obj, @_block = old_obj, old_block143 @_obj, @_block, @_object_name = old_obj, old_block, old_object_name 143 144 end 144 145 145 146 def control_name(col) #:nodoc: -
spec/merb_helpers_spec.rb
old new 151 151 _buffer.should match_tag(:input, :name => "fake_model[foo]", :value => "foowee", :type => "text") 152 152 end 153 153 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 154 166 end 155 167 156 168 describe "text_field (basic)" do
