我正在尝试让best-in-place gem在Rails 3.0应用程序上运行,但似乎没有任何效果。我无法点击任何对象来编辑它们。
这是我到目前为止所做的事情(遵循上面链接中的GitHub说明以及RailsCast:
在我的Gemfile
:
gem 'rails', '3.0.11'
gem 'best_in_place', '~> 0.2.0'
自从我登录3.0后,我也运行了rails g best_in_place:setup
,并在best_in_place.js
生成了public/javascripts
个文件。
最后显示要就地编辑的记录:
<div class="profileGains">"<%= best_in_place @project, :my_quote %>"</div>
我正在使用RESTful路由,因此我对项目资源进行了update
操作。
此时,显示记录但我无法点击它(或任何其他记录)。
有什么建议吗?我是JS的新手并且真的卡住了。
编辑:我创建了一个application.js
文件,其中添加了以下代码:
//= require jquery
//= require jquery.purr
//= require best_in_place
$(document).ready(function() {
/* Activating Best In Place */
jQuery(".best_in_place").best_in_place();
});
我还在Richlewis的评论中尝试了在我的视图中添加脚本标记的建议:
<script type="text/javascript" src="/public/javascripts/best_in_place.js"></script>
最后,我尝试将<%= javascript_include_tag :defaults %>
更改为
<%= javascript_include_tag :all %>
布局文件中的application.html.erb
。
同样,最好的就地不起作用。
更新:使用Chrome检查元素时,我发现日志中显示此错误:
Uncaught TypeError: Object [object Object] has no method 'best_in_place'
application.js line 7
知道这意味着什么吗?
答案 0 :(得分:2)
在我弄明白的时候回答我自己的问题。 best_in_place.js
文件未在我的视图中呈现,因为此代码//= require best_in_place
仅适用于具有资产管道的应用。
我必须在应用程序布局文件中显式声明best_in_place.js
文件。这就行了。