【发布时间】:2013-01-21 15:22:35
【问题描述】:
我正在尝试让best-in-place 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 在 cmets 中的建议,在我的视图中添加脚本标签:
<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
知道这意味着什么吗?
【问题讨论】:
-
我假设您在 application.js 中需要 Jquery,我会将 best_in_place.js 放在资产管道中而不是公开
-
这个应用程序没有资产管道,因为它运行的是 Rails 3.0。此外,没有 application.js 文件;我想添加一个,但我到底要放什么?另外,我确实有一个 jQuery.js 文件。由于没有资产管道,我需要在我的应用程序布局文件中使用 jQuery 吗?
-
抱歉,虽然 3.0 有资产管道,但我的错误,我猜你需要从应用程序/布局文件中调用 JS,即
-
不用担心。所以我尝试了一些东西,包括你的建议,但似乎没有任何效果。项目字段已显示,但我无法单击进行编辑。我编辑了这篇文章以包含这些额外的步骤。
-
也许不太理想,但你能升级到 rails 3.2.11 吗?然后将启用资产管道,您可以在编辑 gemfile 后捆绑更新轨道
标签: javascript ruby-on-rails ruby-on-rails-3 gem best-in-place