Bootstrap модальный не показывает сообщение об ошибке в Heroku - PullRequest
0 голосов
/ 13 марта 2019

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

Это моя кнопка редактирования профиля

<form class="form-inline my-2 my-lg-0">
  <li class="nav-item active">
    <p>Welcome! <%= current_user.email %></p>
  </li>
  <li class="nav-item active">
    <button type="button" class="btn btn-light" data-toggle="modal" data-target="#exampleModalLong">
      Edit Profile
    </button>
  </li>
  <li class="nav-item active">
    <%= link_to "Sign Out", destroy_user_session_path, :method => :delete, class: "btn btn-light" %>&nbsp;
  </li>
</form>
<%= render template: "devise/registrations/edit" %>

И это моя edit.html.erb

<div class="modal fade" id="exampleModalLong" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: {method: :put}, remote: true) do |f| %>
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLongTitle">Edit <%= resource_name.to_s.humanize %></h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          <div id='js-error-block'></div>
          <div class="form-group">
            <label for="user-email" class="col-form-label ">Email:</label>
            <%= f.email_field :email, class: "form-control email", :readonly => true %>
          </div>
          <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
            <div>Currently waiting confirmation for: <%= resource.unconfirmed_email %></div>
          <% end %>
          <div class="form-group">
            <label for="password" class="col-form-label ">Password:</label>
            <%= f.password_field :password, autocomplete: "new-password", class: "form-control password", required: true %>
            <% if @minimum_password_length %>
            <% end %>
          </div>
          <div class="form-group">
            <label for="confirm-password" class="col-form-label">Confirm Password:</label>
            <%= f.password_field :password_confirmation, autocomplete: "new-password", class: "form-control confirm", required: true %>
          </div>
          <div class="form-group">
            <label for="current-password" class="col-form-label">Current Password:</label>
            <strong>(we need your current password to confirm your changes)</strong><br/>
            <%= f.password_field :current_password, autocomplete: "current-password", class: "form-control current", required: true %>
          </div>
          <div class="actions">
            <button type="button" class="btn btn-primary btn-sm">
              <%= f.submit "Update", class: "btn btn-primary" %>
            </button>
          </div>
      <% end %>
      <div class="account-cancel">
        <h3>Cancel my account</h3>
        <p>Think Twice Before Do? </p>
        <%= button_to "Cancel my account", registration_path(resource_name), class: "btn btn-danger", data: {confirm: "Are you sure?"}, method: :delete %>
      </div>
      </div>
    </div>
  </div>
</div>

А это контроллер регистрации

def update
  account_update_params = devise_parameter_sanitizer.sanitize(:account_update)
  if account_update_params[:password].blank?
    account_update_params.delete("password")
    account_update_params.delete("password_confirmation")
  end
  @user = User.find(current_user.id)
  @update = update_resource(@user, account_update_params)
  respond_to do |format|
    if @update
      format.html
      format.js
      redirect_to root_path
      sign_out @user
    else
      format.js
    end
  end
end

Это мой файл application.js

//= require popper
//= require jquery
//= require jquery.js
//= require jquery_ujs
//= require jquery.turbolinks
//= require jquery.remotipart
//= require local-time
//= require activestorage
//= require turbolinks
//= require bootstrap
//= require_self
//= require_tree .

Я установил блок ошибок js, который показывает сообщение об ошибке.Работает без проблем в режиме разработки.Когда я пытаюсь запустить его на Heroku, открывается модальное меню Bootstrap, проверка также происходит, когда я предоставляю правильный пароль, он показывает, что пароль был изменен.Но сообщения об ошибках не отображаются в модальном заголовке.

Если есть какое-либо решение, любезно сообщите ответ.Заранее спасибо!

...