Rails 标准表单需要重新加载页面才能工作

问题描述 投票:0回答:1

情况

  1. 我有两种不同型号的表格:
  • ProductA < Product
  • ProductB < Product
  1. 两者的实例都可以通过 Rails 标准表单进行编辑

问题

ProductA
的对象可以简单地编辑和保存。
ProductB
的对象可以通过表单进行编辑,但提交表单需要手动重新加载页面才能工作。否则表单上的提交按钮不起作用(可以点击,但 dut 不执行任何操作)。

解决方案思路

我比较了这些表格,它们看起来或多或少是一样的。今天早些时候,一个文本字段未正确设置(“text_field 'a'”而不是“form.text_field 'a'”),导致执行失败。我修好了这个。但现在其他领域看起来都不错。 我用谷歌搜索了一下,发现这可能与 JS 有关,而我不使用 JS。但无论如何,我改变了页面布局中标签的顺序,但没有任何改变。

问题

可能存在什么问题?我在监督什么?

没有布局的表单代码

Bild hinzufügen für -
<div class="row">
  <div class="col">
    <%= render 'shared/error_messages', object: f.object %>
  </div>
</div>


<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b><%= f.label :title, KirschProduct.human_attribute_name(:title), class: 'mb-3' %></b>
  </div>
  <div class="col-12 col-md-8">
    <%= f.text_field :title, class: 'form-control' %>
  </div>
</div>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Sonderangebots-Priorisierung</b>
  </div>
  <div class="col-12 col-md-1">
    <%= f.text_field :special_offer, class: 'form-control' %>
  </div>
</div>
<p>(als Ganzzahl pflegen!!!)</p>
<br><br>
<p>Leider kein deutsches Format. Sorry. Ist komplizierter. zeigt keine Fehler an, wenn da Datum nicht geht. Geht dann nicht zu speichern!</p>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Sonderangebot ab</b>
  </div>
  <div>
    <%= f.date_field :special_offer_from, class: 'form-control' %>
  </div>
</div>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Sonderangebot bis</b>
  </div><br>
  <div>
    <%= f.date_field :special_offer_until, class: 'form-control' %>
  </div>
</div>
<hr>
<h2>Verfügbarkeit</h2>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Verfügbarkeit bei Mischa<br> (unbedingt als Ganzzahl pflegen)</b>
  </div>
  <div class="col-12 col-md-1">
    <%= f.text_field :amount_at_mischa, class: 'form-control' %>
  </div>
</div>
<br>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Verfügbarkeit bei Cristian<br> (unbedingt als Ganzzahl pflegen!!!)</b>
  </div>
  <div class="col-12 col-md-1">
    <%= f.text_field :amount_at_christian, class: 'form-control' %>
  </div>
</div>
<br>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Verfügbarkeit bei Kirsch Import<br></b>
    <p>(Unnbedingt bei Spezialangeboten setzen sonst wird das Produkt nicht buchbar gemacht, außer Ihr habt das auf Vorrat!)
  </div>
  <div class="col-12 col-md-1">
    <%= f.check_box :available_at_kirsch_import, class: 'form-control' %>
  </div>
</div>
<hr>
<h2>Pricing</h2>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b><%= f.label :calculated_gross_price, KirschProduct.human_attribute_name(:calculated_gross_price), class: 'mb-3' %></b>
  </div>
  <div class="col-12 col-md-1">
    <%= german_currency(@kirsch_product.gross) %>
  </div>
</div>
<div class="row align-items-center">
  <br>
  <div class="col-12 col-md-4">
    <% if @kirsch_product.kirsch_net_price_from_excel.present? %>
      <b>Kirsch Preis aus Excel:</b><br>
        Netto<br>
        Brutto(19%)
      </div>
      <div class="col-12 col-md-1">
        <br>
        <%= german_currency(@kirsch_product.kirsch_net_price_from_excel) %><br>
        <%= german_currency(@kirsch_product.kirsch_net_price_from_excel * 1.19) %><br>
      </div>
    <% end %>
    <br>
  </div>
  <hr>
  <div class="row align-items-center">
      <div class="col-12 col-md-4">
        <b><%= label :manual_gross_price, KirschProduct.human_attribute_name(:manual_gross_price), class: 'mb-3' %></b>
      </div>
      <div class="col-12 col-md-8">
        <p>Hier selbst festgelegter Brutto-Verkaufspreis an Kunden von sprit-safe.de<br>
          (überschreibt Preise in der "Kirsch Excel Tabelle" und den "Berechneter Preis" (s.o.)) </p>
        <%= f.text_field :manual_gross_price, class: 'form-control' %>
      </div>
  </div>
</div>
<hr>
<div class="align-items-center">
  <%= form_group f, :offer_gross_price, class: 'row align-items-center' do %>
    <div class="col-12 col-md-4">
      <b><%= f.label :offer_gross_price, KirschProduct.human_attribute_name(:offer_gross_price), class: 'mb-3' %></b>
    </div>
    <div class="col-12 col-md-8">
      <p>Hier Sonderangebotspreis von sprit-safe.de, der von dem Preis oben abweichen darf. Beide Preise werden angezeigt (wenn der manuelle Preis oben nicht gepflegt ist wird, der korrigierte Kirsch Excel Preis gezeigt)!
        (überschreibt Preise in der Excel Tabelle von Kirsch natürlich) </p>
      <%= f.text_field :offer_gross_price, class: 'form-control' %>
    </div>
  <% end %>
</div>
<hr>
<h2>Sonstiges</h2>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Geladenes Übersichtsbild (Nur FYI):</b>
  </div>
  <div class="col-12 col-md-1">
    <%= @kirsch_product.low_res_pic.attached? ? image_tag(@kirsch_product.low_res_pic, class: 'img-fluid') : 'Nicht geladen' %>
  </div>
</div>
<% unless @kirsch_product.low_res_pic.attached? %>
  <hr>
  <div class="row align-items-center">
    <div class="col-12 col-md-4">
      <b><%= f.label :low_res_pic, 'Niedrigaufgelöstes Bild', class: 'mb-3'%></b>
    </div>
    <div class="custom-file col-12 col-md-8">
      <%= f.file_field :low_res_pic, class: 'custom-file-input' %>
      <%= f.label :low_res_pic, '...niedrigaufgelöstes Bild wählen', class: 'custom-file-label mb-0' %>
    </div>
  </div>
<% end %>
<hr>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b>Geladenes Detailbild (Nur FYI):</b>
  </div>
  <div class="col-12 col-md-1">
    <%= @kirsch_product.high_res_pic.attached? ? image_tag(@kirsch_product.high_res_pic, class: 'img-fluid') : 'Nicht geladen' %>
  </div>
</div>
<% unless @kirsch_product.high_res_pic.attached? %>
  <hr>
  <div class="row align-items-center">
    <div class="col-12 col-md-4">
      <b><%= f.label :high_res_pic, 'Hochaufgelöstes Bild', class: 'mb-3'%></b>
    </div>
    <div class="custom-file col-12 col-md-8">
      <%= f.file_field :high_res_pic, class: 'custom-file-input' %>
      <%= f.label :high_res_pic, '...hochaufgelöstes Bild wählen', class: 'custom-file-label mb-0' %>
    </div>
  </div>
<% end %>
<hr>
<div>
  <b><%= f.label :description, KirschProduct.human_attribute_name(:description), class: 'mb-3' %></b>
  <div class="row align-items-center">
    <div class="col-12 col-md-8">
      <p>(Soll für Tasting Notes verwendet werden)</p>
      <%= f.text_area :description, class: 'form-control', size: "x10"%>
    </div>
  </div>
</div>
<hr>
<br><br>
<div class="row align-items-center">
  <div class="col-12 col-md-4">
    <b><%= f.label :country, KirschProduct.human_attribute_name(:country), class: 'mb-3' %></b>
  </div>
  <div class="col-12 col-md-8">
    <%= f.text_field :country, class: 'form-control' %>
  </div>
  <div class="mt-5">
    <%= f.submit "Kirsch Produkt ändern", class: 'btn btn-primary' %>
  </div>
</div>
<% end %>
html ruby-on-rails forms
1个回答
0
投票

在定价区域的某个地方有一个结束 div 标签

</div>
,我通过超繁重的调试发现了这一点(=> C&P 地狱)。我把它删除了,现在一切都正常了。我不清楚为什么这会阻止 HTML 表单工作,但问题已得到解答。也许这也是将 div 元素移入
if
块的原因。无论如何。

© www.soinside.com 2019 - 2024. All rights reserved.