Редактировать объект с помощью модальной формы начальной загрузки (Ruby On Rails) - PullRequest
0 голосов
/ 19 сентября 2019

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

groups.html.erb

<table class="table table-striped table-bordered table-hover dataTables-example" >
   <thead>
      <tr>
         <th>Name</th>
         <th>Phone</th>
         <th>Action</th>
      </tr>
   </thead>
   <tbody>
       <% @groups.each do |g| %>
           <tr class="gradeC">
               <td><%= g.name%></td>
               <td><%= g.phone%></td>
               <td>
                  <div class="btn-group">
                     <%= link_to 'Edit', edit_group_path(g),  {:remote => true, 'data-toggle' =>  "modal", 'data-target' => '#edit-group', class: 'btn-white'}  %>
                  </div>
               </td>
           </tr>

         </tbody>
     <% end %>
</table>

    <div id="edit-group" class="modal hide fade" aria-hidden="true">
    <div class="modal-dialog modal-md">
    <div class="modal-content">
    <div class="modal-body">
        <%= render partial: 'form' %>
    </div>
    </div>
    </div>

_form.html.erb

    <div id="edit">
    <div class="row">
    <div class="col-sm-12"><h3 class="m-t-none m-b">Edit group</h3>
    </div>
    </div>
    <%= form_for @group, url: groups_path, remote: true do |f| %>
    <div class="form-group row">
    <div class="col-sm-6">
    <label>Name</label> 
        <%= f.text_field :name, class:"form-control"%> 
    </div>
    <div class="col-sm-5">
    <label>Phone</label> 
        <%= f.text_field :phone, class:"form-control"%> 
    </div>
    </div>

    <%= f.submit "Submit", id:"submit", class: 'btn btn-primary btn-lg float-right'%>
    </div>
    <% end %>
    </div>
    </div>
    </div>
    </div>

_edit.js.erb

$('.modal-body').html("<%= escape_javascript( render partial: 'form', locals: {group: @group} ) %>")

$('#edit-group').modal()

_update.js.erb

$('#edit-group').modal('toggle');
$('#group_<%= @group.id %>').replaceWith('<%= j render (@group) %>')

groups_controller.

class GroupsController < ApplicationController
    def groups 
        @group = Group.new
        @group = Group.all
    end

    def create
        @group = Group.new(group_params)
        if @group.save
          flash[:success] = "Group successfully added"
          redirect_to :groups => 'post', :action => 'groups'
        else
          flash[:error] = "Something went wrong"
          render 'group'
        end
    end

    def edit
      @group = Group.find(params[:id])
      format.js
    end

    def update
      respond_to do |format|
        format.html
        format.js
        if @group.update(group_params)
          redirect_to :groups => 'post', :action => 'groups'
        end
      end
    end

    private
    def group_params
        params.require(:group).permit(:name, :phone)
    end

end

Я пыталсясделайте console.logs в файлах javascript, чтобы убедиться, что они хотя бы пытаются выполнить, но я ничего не получаю в консоли, думаю, что они не выполняются по какой-то причине, они находятся в моей папке views

1 Ответ

0 голосов
/ 19 сентября 2019

В вашем _edit.js.erb измените последнюю строку следующим образом:

$('#edit-group').modal('show');

Кроме того, какой ответ вы получите, нажав на ссылку редактирования?Посмотрите на ваш работающий сервер в оболочке и нажмите на ссылку изменить.Посмотрите, какую ошибку вы получаете.

Я мог бы предположить, что это должен быть edit.js.erb вместо _edit ... Также убедитесь, что вы указали правильный частичный путь расположения внутри _edit.js.erb

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