Rails, same piece of code won't work with 3.2 -
so have on erb:
<%= fields_for camera, :index =>camera.id |field|%> <%= field.check_box :alertflag %> and on controller:
@camera = camera.update(params[:camera].keys, params[:camera].values) and works on 1 server have rails 3.0.9, reason doesn't work same way on 1 server have rails 3.2.
the params hash on 3.0.9:
camera%5b10%5d%5balertflag%5d=0 on 3.2:
camera%5balertflag%5d=0 so index missing.
the index option supported in both rails versions. when comparing source code of formhelper module in 2 rails versions becomes clear fields_for method signature has changed from:
def fields_for(record_or_name_or_array, *args, &block) in rails 3.0, to
def fields_for(record_name, record_object = nil, fields_options = {}, &block) in rails 3.2.
so if need pass options (e.g. index), must pass the 3rd argument method now, following should work:
<%= fields_for :camera, camera, :index => camera.id |field| %>
Comments
Post a Comment