如果语句阻止提交按钮工作

时间:2015-01-19 13:10:11

标签: ruby-on-rails forms

由于第一个if声明,我的提交按钮无效。如果我删除块,按钮工作。该声明似乎打破了这一观点。为什么呢?

<% if params[:action] == "edit" %>
    <div class="field">
      <%= form_tag :action => "edit" do %>
        <%= select_tag :vehicle_id, options_from_collection_for_select(@vehicles, :id, :model, params[:id].to_i), :onchange => "this.form.submit()" %> 
      <% end -%>
      <%= link_to 'Nouvelle voiture', new_vehicle_path %>
    </div>
  <% end -%>

  <div class="field">
    <%= f.label "Modèle" %>
    <%= f.text_field :model, required: true %>
  </div>
  <div class="field">
    <%= f.label "Immatriculation" %>
    <%= f.text_field :license_plate, required: true %>
  </div>
  <div class="field">
    <%= f.label "Complément" %>
    <%= f.text_field :complement, required: true%>
  </div>
  <div class="field">
    <%= f.label "Puissance CV" %>
    <%= f.number_field :horse_power, required: true %>
  </div>
  <div class="field">
    <%= f.label "Indemnité KM" %>
    <%= f.number_field :km_compensation, required: true%>
  </div>

  <% if params[:action] == "edit" %>
    <%= link_to 'Détruire', @vehicle, method: :delete, data: { confirm: 'Êtes-vous sûr ? Les trajets associés seront aussi détruits.' } %>
    <h1>Trajets</h1>

    <div>
      <span>Clients</span>
      <span>Kms aller/retour</span>
    </div> 

    <%= f.fields_for :trip_distances do |builder| %>   
        <div class="field">
          <%= builder.text_field :id_contract %>
          <%= builder.number_field :length %>
        </div>
    <% end -%>
  <% end -%>

  <div class="actions">
    <%= f.submit 'Sauvegarder' %>
  </div>

2 个答案:

答案 0 :(得分:0)

当您提交if声明时,您不会有提交按钮所在的表单。如果没有if语句,您的表单就会出现在视图中,您可以提交给它。

答案 1 :(得分:0)

找到解决方案。我不需要form_tag

  <%= form_tag :action => "edit" do %>