3

我正在为我的 Rails 3.2.1 应用程序使用 best_in_place gem。我的开发没有错误。当我尝试在生产环境中运行应用程序时,我收到一个脚本错误

$(".best_in_place").best_in_place is not a function in my browser.

在我的视图页面中,我有以下代码

<%= stylesheet_link_tag "best_inplace", "jquery-ui-1.8.20.custom" %>
<%= javascript_include_tag "application", "jquery.dataTables.min" %>


<%= best_in_place @user, :description, :type => :textarea %>

<script>
  jQuery(".best_in_place").best_in_place();
</script>
4

2 回答 2

4

几分钟前我也遇到了这个问题,通过移动require best_in_place到最后解决了,其他地方不起作用。很奇怪,但无论如何都可以。

这是application.js清单

//= require jquery
//= require jquery_ujs
//= require jquery.purr
//= require_tree .
//= require i18n
//= require i18n/translations
//= require best_in_place

$(document).ready(function() {
  $('.best_in_place').best_in_place();
})
于 2012-06-19T18:45:00.967 回答
1

问题是该函数best_in_place()?是在内部声明的,在执行调用中best_in_pace.js的代码时可能仍需要加载该函数。正确的解决方案是通过资产管道启用 js 文件的串联。这可以通过包括application.jsbest_in_place()

config.assets.debug = false

和/或删除

config.assets.debug = true

config/environments/development.rb分别_ config/environments/production.rb. 然后,包含的位置best_in_pace.js无关紧要(只要它出现在jquery.js代码调用之前和之前best_in_place())。

于 2012-12-29T18:47:25.373 回答