Когда я отправляю удаленную форму в рельсах, форма POST
дублирует данные, даже если я вручную сериализую форму, используя jQuery, показывает, что дубликатов нет. Что может быть причиной этого?Rails удаленная форма, представляющая данные повторяющейся формы
* Обычно это не проблема, но одна из данных формы - это массив, в результате в представленном массиве есть повторяющееся значение.
Результат от сети инспектора Хрома
UPDATE Вот gist моей формы (удаление HTML наценки):
<% @order.available_payment_methods.each do |method| %>
<%= radio_button_tag "order[payments_attributes][][payment_method_id]", method.id, method == @order.available_payment_methods.first %>
<%= Spree.t(method.name, :scope => :payment_methods, :default => method.name) %>
<%= render :partial => "spree/checkout/payment/#{method.method_type}", :locals => { :payment_method => method } %>
<% end %>
# partial
<% param_prefix = "payment_source[#{payment_method.id}]" %>
<%= label_tag "name_on_card_#{payment_method.id}", Spree.t(:name_on_card) %><span class="required">
<%= text_field_tag "#{param_prefix}[name]", "#{@order.billing_firstname} #{@order.billing_lastname}", { id: "name_on_card_#{payment_method.id}", class:'form-control'} %>
<% options_hash = Rails.env.production? ? {:autocomplete => 'off'} : {} %>
<%= text_field_tag "#{param_prefix}[number]", '', options_hash.merge(:id => 'card_number', :class => 'required cardNumber form-control', :size => 19, :maxlength => 19, :autocomplete => "off") %>
<%= text_field_tag "#{param_prefix}[expiry]", '', :id => 'card_expiry', :class => "required cardExpiry form-control", :placeholder => "MM/YY" %>
<%= text_field_tag "#{param_prefix}[verification_value]", '', options_hash.merge(:id => 'card_code', :class => 'required cardCode form-control', :size => 5) %>
<% if @order.bill_address %>
<%= fields_for "#{param_prefix}[address_attributes]", @order.bill_address do |f| %>
<%= render :partial => 'spree/address/form_hidden', :locals => { :form => f } %>
<% end %>
<% end %>
<%= hidden_field_tag "#{param_prefix}[cc_type]", '', :id => "cc_type", :class => 'ccType' %>
UPDATE Отправка формы без remote: true
исправляет проблему (НО мне это нужно!)
Можете ли вы показать нам свою HTML-форму? Я подозреваю, что вы копируете 'fields_for', не обновляя' id' каждого добавляемого поля. –
Попробуйте отправить форму без «remote: true» и проверить журналы своего сервера, если там все еще будет дублирование. Тогда вы узнаете, является ли это «javascript» или ошибкой, которую вы сделали с вашей «формой» – DevMarwen
@RichPeck. Я обновил сообщение с помощью формы. – harinsa