我在我的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>
答案 0 :(得分: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();
})
答案 1 :(得分:1)
问题是函数best_in_place()?
是在best_in_pace.js
内声明的,当application.js
调用best_in_place()
中的代码被执行时,可能仍需要加载它。正确的解决方案是通过asset pipeline启用js文件的连接。这可以通过包括
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()
的代码之前)。