6

一旦 application.js 文件中需要 jquery,为什么销毁操作不兼容?如何在不忽略 jquery 的情况下让销毁操作再次工作?

帖子索引视图:

h1 Blog
- @posts.each do |post|
 h2 = link_to post.title, post
 p = post.content
 p = link_to 'Edit', edit_post_path(post)
 p = link_to 'Delete', post, data: {confirm: "Are you sure?"}, method: :delete
 br

p = link_to 'Add a new post', new_post_path

销毁帖子控制器中的操作:

def destroy
 @post = Post.find params[:id]
 @post.destroy

 redirect_to posts_path, :notice => "Your post has been deleted"
end

应用程序.js:

= require jquery
= require jquery_ujs
//= require turbolinks
//= require_tree

一旦我将这两个评论出来,破坏动作就会再次起作用。没有评论,删除链接只会触发表演动作……你的想法?

4

3 回答 3

3

所以资产管道对这些评论做了一些特别的事情。表单注释的存在

//= require jquery

指示预处理器在构建应用程序客户端的 application.js 时包含该文件。当您删除评论时,您将删除此行为 - 生成的库不会编译到应用程序提供的最终 application.js 中。

这样做的结果是您误解了 required 指令的工作方式。它仅适用于评论。当您删除评论标签时,您将停止包含该库。

于 2013-10-16T04:40:07.930 回答
0

application.js是一个清单文件,所以语法应该有这些注释。请参阅http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives

于 2013-10-16T04:42:40.923 回答
0

如果您从网站http://guides.rubyonrails.org/getting_started.html复制并粘贴了代码,请尝试输入它。

或者删除所有可能不是空格的前导“空格”。不知何故,我得到了 ascii 160 而不是 ascii 32 (空白字符)。

我确定它是如何发生的,但是现在再次复制并粘贴它可以正常工作。

于 2016-02-06T15:34:19.227 回答