Показать модальную форму для редактирования записи (Ruby on Rails) - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть модальная форма для редактирования записей для объекта "Плоскости", однако модальная форма не отображается, я пробовал много разных способов сделать это, и я не могу показать это, поэтомуЯ не знаю, что еще делать, вот мой код.

planes.html.erb

<tbody>
    <% @planes.each do |p| %>
        <tr class="gradeC">
            <td>
                <%= image_tag(p.image, size: "150x150")%></td>
            <td class="w-25"><%= p.provider%>
            </td>
            <td><%= p.brand%></td>
            <td class="center"><%= p.year%></td>
            <td class="center"><%= p.call_sign%></td>
            <td><%= p.country%></td>
            <td><%= p.info%></td>
            <td class="text-right">
                <div class="btn-group">
                    <%= link_to 'Edit', edit_plane_path(p), remote: true %>
                     <button class="btn-white btn btn-xs">Delete</button>
                </div>
             </td>
        </tr>
    </tbody>

    <div id='post-content'></div>

_edit.html.erb

    <!-- FORM EDIT -->
    <div id="post-modal" class="modal fade" role="dialog">
    <div class="modal-dialog modal-md">
    <div class="modal-content">
    <div class="modal-body">
    <div class="row">
    <div class="col-sm-12"><h3 class="m-t-none m-b">Edit plane</h3>
    </div>
    </div>
    <%= render 'form', modal: true %>

    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>

edit.js.erb

$('#post-content').html("<%= j render 'edit', plane: @plane %>");
$('#post-modal').modal('show');

_form.html.erb

    <% modal ||= false %>
    <% remote = modal ? true : false %>
    <%= form_for @plane, remote: remote, html: {role: :form, 'data-model' => 'plane'} do |f| %>
    <div class="form-group row">
    <div class="col-sm-6">
    <label>Brand</label> 
        <%= f.text_field :brand, class:"form-control"%> 
    </div>
    <div class="col-sm-5">
    <label>Model</label> 
        <%= f.text_field :model, class:"form-control"%> 
    </div>
    </div>

    <div class="form-group row">
        <div class="col-sm-5">
        <label>Year</label>      

<%=select_tag:hyear,options_for_select(["2010","2011","2012","2013","2014","2015","2016","2017","2018","2019"], "2019"), class:"select2_demo_1 form-control" %>
            <%= f.hidden_field :year %>
        </div>

        <div class="col-sm-6">
        <label>Country</label>
            <%= select_tag :hcountry, nil, class:"select2_demo_1 form-control" %>
                <%= f.hidden_field :country %>
            </div>

            <script language="javascript">
                populateCountries("hcountry");
            </script>
    </div>

    <div class="form-group row">
        <div class="col-sm-6">
            <label>Provider</label>
                <%= select_tag :hprovider, options_for_select([ "Test", "Test2"], "Test"), class:"select2_demo_1 form-control"%></select>
                <%= f.hidden_field :provider %>
        </div>


        <div class="col-sm-5">
        <label>Tactical call sign</label> 
            <%= f.text_field :call_sign, class:"form-control"%> 
        </div>
    </div>

    <div class="form-group row">
        <div class="col-sm-6">
        <label>Extra info</label> 
            <%= f.text_area :info %>
        </div>

        <div class="col-sm-5">
            <label>Image</label>       
            <%= f.file_field :image %>   
        </div>

    </div>

    <!-- SUBMIT -->
    <button class="btn btn-primary btn-lg float-right ml-2" id="cancelbtn">Cancelar</button>
    <%= f.submit "Submit", id:"addpla", class: 'btn btn-primary btn-lg float-right'%>
    <% end %>

planes_controller.rb

    def edit
      @plane = Plane.find(params[:id])

      respond_to do |format|
        format.html 
        format.js 

      end
    end

    def update   
      respond_to do |format|
      @plane = Plane.find(params[:id])   
      if @plane.update_attributes(plane_params)   
        flash[:notice] = 'Product updated!'   
        redirect_to root_path   
        format.html { redirect_to @plane, notice: 'Person was successfully created.' }
        format.json { render action: 'show', status: :created, location: @plane }
        # added:
        format.js   { render action: 'show', status: :created, location: @plane }
      end
      end   
    end  

Я пытался поместить модальное окно в planes.html.erb и link_to с данными toggle = modal, которые имеют в качестве цели этот div, но это не так.кажется, ничего не делать.Примерно так:

<%= link_to 'trigger modal', edit_plane_path(p) , remote: true, data: { target: '#modal-window', toggle: 'modal' }, class: 'nav-link'%>


<div id="modal-window" class="modal hide fade" role="dialog" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content"> 
    </div>
  </div>
</div>

Я также пытался поместить следующее <%= render 'edit', modal: true %> в # modal-content.Также не работает.

Также пытался удалить файл format.html из контроллера, тоже ничего не получилось

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...