Jquery mobile和Rails:链接不起作用

时间:2014-02-10 11:36:50

标签: ruby-on-rails jquery-mobile jquery-ui-tabs jquery-tabs

我使用的是Rails 3.2.12和最新的jquery-mobile gem

在布局中:

<%= javascript_include_tag "mobile" %>

在mobile.js中:

//= require jquery
//= require jquery_ujs
//= require jquery.mobile

现在每当我通过输入完整的URL手动加载页面时,一切似乎都应该正常工作。但是,当我点击链接或提交表单时,会发生奇怪的“双重提交”。

以下是登录时服务器控制台的示例:

  1. 提交登录表单

    Started POST "/login/signin?class=form" for 127.0.0.1 at 2014-02-10 11:21:58 +0100
    Processing by LoginController#signin as HTML
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"0LlkpMMR8/4HMgzlWob15TSxvNvCIPUaW0Zuutygos8=", "email"=>"director@demo.foot", "password"=>"[FILTERED]", "connect"=>"Sign in", "class"=>"form"}
    
  2. 处理登录后,请求被重定向到home / myome,因为它应该

    Started GET "/home/myhome" for 127.0.0.1 at 2014-02-10 11:21:58 +0100
    Processing by HomeController#myhome as HTML
    
  3. 现在这是奇怪的事情发生的时候,因为GET方法无处不在

    Started GET "/login/signin?class=form" for 127.0.0.1 at 2014-02-10 11:22:00 +0100
    Processing by LoginController#signin as */*
    
  4. 其次是:

    Started GET "/home" for 127.0.0.1 at 2014-02-10 11:22:00 +0100
    Processing by HomeController#index as */*
    
  5. 类似地,点击简单链接会触发两个相同的GET请求。

    当我使用ajaxEnabled = false禁用ajax时,链接正在运行。

    一种解释可能是两次以某种方式包括jquery,但我无法弄清楚何时以及如何。我见过几个类似的线程,如this one,并确保不在开发模式下预编译资产,但无济于事。

    修改 不久之前,当我意识到所有的id,整个网站的页面都需要是唯一的才能使用jquery mobile的Ajax加载能力时,我放弃了这一点。这就是我的问题所在。

    由于我将jquery mobile应用于现有的大型网站,包含大量表单和手动设置ID,我现在选择保持简单并禁用Ajax。

    从头开始构建,必须提供一个良好的系统来确保整个站点中的唯一ID。

    以下是有关此主题的一些建议的链接:http://metaskills.net/2011/08/24/jquery-mobile-and-rails/

0 个答案:

没有答案