0

我正在尝试让最好的 gem在 Rails 3.0 应用程序上工作,但似乎没有任何效果。我无法单击任何对象来编辑它们。

这是我到目前为止所做的(按照上面链接中的 GitHub 说明以及RailsCast

在我的Gemfile

gem 'rails', '3.0.11'
gem 'best_in_place', '~> 0.2.0'

我也跑了rails g best_in_place:setup,因为我在 3.0 上,它生成了一个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

知道这意味着什么吗?

4

1 回答 1

2

回答我自己的问题,因为我想通了。该best_in_place.js文件未在我的视图中呈现,因为此代码//= require best_in_place仅适用于具有资产管道的应用程序。

我必须在我的应用程序布局文件中明确声明该best_in_place.js文件。那成功了。

于 2013-01-21T19:47:43.200 回答