首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails form_for :remote=>true未调用js方法

Rails form_for :remote=>true未调用js方法
EN

Stack Overflow用户
提问于 2010-11-20 01:38:48
回答 8查看 47.7K关注 0票数 36

我不知道为什么这不起作用,我正在学习rails,我正在遵循一本书,书上说这样做:

代码语言:javascript
复制
    <%= 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结尾的,你知道为什么吗?

EN

回答 8

Stack Overflow用户

发布于 2011-05-29 09:17:37

当你检查firebug中的请求时,仅仅因为url没有以.js结尾,并不意味着它不是从javascript调用的。为了验证您是否应该检查请求标头,以了解Accept参数是什么。如果显示为"application/javascript“,则一切正常。

其次,在开始尝试:remote javascript true时,一个非常常见的问题是所需的=>库没有包含在您的代码中。因此,我猜测您的布局中缺少以下代码:

代码语言:javascript
复制
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>

如果是这种情况,只需将其包含在布局的<head>标记中即可。

票数 36
EN

Stack Overflow用户

发布于 2011-05-31 18:32:26

最有可能发生的情况是,无论您使用的是prototype还是jquery,都会缺少rails.js文件,该文件将为您处理此问题。

如果您使用的是jQuery,那么获取所有所需文件的最简单方法就是使用jquery-rails gem。这将添加一个生成器来安装jquery和所需的rails.js。

在rails应用程序根目录中键入类似以下内容:

代码语言:javascript
复制
rails g jquery:install

然后,在application.html.erb中添加下面这行

代码语言:javascript
复制
<%= javascript_include_tag :defaults %>

或者显式地(不要忘记单独包含jquery ):

代码语言:javascript
复制
<%= javascript_include_tag :rails, :application %>

编辑:对于使用资源管道的Rails 3.1或更高版本

使用jquery-rails gem (如上所述),并将以下行添加到app/assets/javascripts/application.js (如果它们尚未存在):

代码语言:javascript
复制
//= require jquery
//= require jquery_ujs

希望这能有所帮助!

票数 22
EN

Stack Overflow用户

发布于 2014-08-07 18:20:03

检查您的/app/assets/javascript/application.js文件

它应该包含在那里的文件下面。jquery_ujs负责remote=> true特性的工作。

代码语言:javascript
复制
require `jquery`
require `jquery_ujs`

编码快乐!!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4227775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档