我不知道为什么这不起作用,我正在学习rails,我正在遵循一本书,书上说这样做:
<%= form_for([@article,@article.comments.new ], :remote=>true, :html => {:style=>'display: none;' }) do |f|%>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :body %>
<%= f.text_area :body %>
</div>
<%= f.submit %>
<% end %>但是它不工作,当我在firebug中检查请求时,url不是以.js结尾的,你知道为什么吗?
发布于 2011-05-29 09:17:37
当你检查firebug中的请求时,仅仅因为url没有以.js结尾,并不意味着它不是从javascript调用的。为了验证您是否应该检查请求标头,以了解Accept参数是什么。如果显示为"application/javascript“,则一切正常。
其次,在开始尝试:remote javascript true时,一个非常常见的问题是所需的=>库没有包含在您的代码中。因此,我猜测您的布局中缺少以下代码:
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>如果是这种情况,只需将其包含在布局的<head>标记中即可。
发布于 2011-05-31 18:32:26
最有可能发生的情况是,无论您使用的是prototype还是jquery,都会缺少rails.js文件,该文件将为您处理此问题。
如果您使用的是jQuery,那么获取所有所需文件的最简单方法就是使用jquery-rails gem。这将添加一个生成器来安装jquery和所需的rails.js。
在rails应用程序根目录中键入类似以下内容:
rails g jquery:install然后,在application.html.erb中添加下面这行
<%= javascript_include_tag :defaults %>或者显式地(不要忘记单独包含jquery ):
<%= javascript_include_tag :rails, :application %>编辑:对于使用资源管道的Rails 3.1或更高版本
使用jquery-rails gem (如上所述),并将以下行添加到app/assets/javascripts/application.js (如果它们尚未存在):
//= require jquery
//= require jquery_ujs希望这能有所帮助!
发布于 2014-08-07 18:20:03
检查您的/app/assets/javascript/application.js文件
它应该包含在那里的文件下面。jquery_ujs负责remote=> true特性的工作。
require `jquery`
require `jquery_ujs`编码快乐!!
https://stackoverflow.com/questions/4227775
复制相似问题