Best in Place Editing не работает с Rails 4. Видит поле, но не может редактировать

Я пытаюсь реализовать встроенное редактирование Best in Place в приложении rails 4.0. Появляется поле «Лучшее на месте», но я не могу заставить редактирование работать.

Я настроил поле в форме с «традиционным» отображением рядом с полем Best in Place.

<div class="field">
  <td> Sales order</td>
  <td ><span  class="text_left"><%= @bedsheet_line.sales_order %></span>
    | <%= best_in_place @bedsheet_line, :sales_order, tabindex: "1", ok_button: true %> |</td>
</div>

Это выглядит следующим образом. Я вижу, что выглядит как поле ввода. Оно выглядит так же, как «традиционное» поле. Когда вы нажмете на нее, вы получите голубоватое поле. Однако я не могу редактировать его.

введите здесь описание изображения

Моя установка рельсов

Ruby Information    ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
Rails Version   4.2.7.1
Rails Environment   development ( development/test/production)

Gemfile это

gem 'best_in_place', '~> 3.0.1'             # for in place editing
gem 'responders', '~> 2.0'

Application.js — это

/
//= require jquery
//= require jquery_ujs
//= require jquery.turbolinks
//= require turbolinks
//= require ckeditor/init
//= require jquery.are-you-sure
//= require script
//= require script.responsive
//= require best_in_place
//= require best_in_place.jquery-ui
//= require jquery.purr
//= require_tree .

Мой контроллер

if @bedsheet_line.update(bedsheet_line_params)

   # format.html { redirect_to @bedsheet_line, notice: 'Bedsheet line was successfully updated.' }
    format.html { redirect_to @prev_url, notice: 'Bedsheet line was successfully updated.' }
    #format.json { render :show, status: :ok, location: @bedsheet_line }
    format.json { respond_with_bip(@bedsheet_line) }
  else
    format.html { render :edit }
    # format.json { render json: @bedsheet_line.errors, status: :unprocessable_entity }
    format.json { respond_with_bip(@bedsheet_line) }
  end
end

Я использую расширение визуального события для хрома. Он не показывает никаких javascript/jquery, прикрепленных к этому полю.

При проверке я вижу следующее, что, по-видимому, указывает на то, что Best in place взаимодействует на каком-то уровне.

<span data-bip-type="input" data-bip-attribute="sales_order" data-bip-object="bedsheet_line" data-bip-ok-button="true" data-bip-original-content="123" data-bip-url="/bedsheet_lines/3081" data-bip-value="123" class="best_in_place" id="best_in_place_bedsheet_line_3081_sales_order" tabindex="1">123</span>

Из документации я не могу сказать, совместим ли Best In Place с версиями ruby/rails, которые я использую. Если это так, может ли кто-нибудь сказать мне, где я могу ошибаться?

--------------------- Редактировать

Вот строки журнала разработки, которые появляются после того, как я нажму на поле Best in place.

 Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.0ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.0ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.0ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/console.js.erb within layouts/javascript (846.1ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/main.js.erb within layouts/javascript (1.0ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.0ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.3.0/lib/web_console/templates/index.html.erb (1854.2ms)


Started GET "/assets/header.jpg" for ::1 at 2017-01-20 11:57:34 -0500


Started GET "/assets/menuseparator.png" for ::1 at 2017-01-20 11:57:34 -0500


Started GET "/assets/object371718839.png" for ::1 at 2017-01-20 11:57:34 -0500


Started GET "/assets/spacer.gif" for ::1 at 2017-01-20 11:57:34 -0500

person Chris Mendla    schedule 20.01.2017    source источник


Ответы (1)


Я использовал устаревшие версии jquery,

Мои текущие версии:

Using on_the_spot 1.0.5
Using jquery-turbolinks 2.1.0
Using jquery-ui-rails 6.0.1
Using rails 4.2.7.1

Я изменил ссылки jquery в своем application.html.erb, чтобы включить

<% javascript_include_tag  "http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" %>

<% javascript_include_tag "http://code.jquery.com/ui/1.11.4/jquery-ui.min.js"
      integrity="sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw="
      crossorigin="anonymous"%>

  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">

  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

  <%= stylesheet_link_tag :on_the_spot %>

Я не уверен, оптимальны ли ссылки jquery или нет, но похоже, что все, что связано с Jquery в приложении, работает нормально. Обновление библиотек jquery не только исправило best_in_place, но и ту же проблему с on_the_spot.

person Chris Mendla    schedule 25.01.2017