Ruby on rails 3.2 在Rails 3.2.8应用程序中从jQuery BBQ更改为History.js

Ruby on rails 3.2 在Rails 3.2.8应用程序中从jQuery BBQ更改为History.js,ruby-on-rails-3.2,history.js,Ruby On Rails 3.2,History.js,我用一张巨大的、丑陋的、看不见的表格来管理国家。我将在click事件中序列化表单中的值,并进行ajax提交,这将为页面上的div提供内容。我正在序列化和反序列化大表单中的值,并使用jQuery BBQ插件(我从未完全理解)来管理状态 我正在尝试在我的应用程序中重做jQuery BBQ,以使用history.js。我将ajaxify-html5要点插入到我的应用程序中 我的应用程序深入到数据库表中,将该表中的列作为页面上的链接列出。他们将类“.attrs”分配给他们 我看到在ajaxify中调用的

我用一张巨大的、丑陋的、看不见的表格来管理国家。我将在click事件中序列化表单中的值,并进行ajax提交,这将为页面上的div提供内容。我正在序列化和反序列化大表单中的值,并使用jQuery BBQ插件(我从未完全理解)来管理状态

我正在尝试在我的应用程序中重做jQuery BBQ,以使用history.js。我将
ajaxify-html5
要点插入到我的应用程序中

我的应用程序深入到数据库表中,将该表中的列作为页面上的链接列出。他们将类“.attrs”分配给他们

我看到在
ajaxify
中调用的“click”事件。它看起来像是调用了History.pushState,我想它就像是bbq.pushState,因为它将为我完成提交

虽然我的URL保持不变,但我的请求似乎没有像我在Rails应用程序中预期的那样得到执行。我正在使用的一个示例URL是:

http://myapp/brands/get_attributes?brand_id=539page_attribute=attribute1&attribute1=Whirlpool
当我使用BBQ插件时,我指定了发送给$.ajax()调用的哈希值,如下所示:

hash = type: "POST", url: "brands/get_attributes", data: $("#buyersguideform").serialize()
因为它正在执行一个Ajax请求,所以Rails会识别出这一点,并使用适当的.js.erb模板进行响应

不幸的是,我的URL似乎没有包含足够的信息来告诉History.js应该发出什么样的请求。因此,代码正在执行一个常规的旧GET请求,该请求甚至没有在控制器中获得正确的
GET\u属性
操作

我真的需要用这个History.js解决这些问题:

1) 想一想如何摆脱我建立的疯狂的本土国家管理无形形式。我已经开始使用我正在生成的参数化URL来实现这一点。我只是不知道如何从一个Ajax请求到下一个Ajax请求。换句话说,我不知道何时/如何使用
getState()

2) 了解如何使History.js执行Ajax POST而不是非Ajax GET

3) 更多地了解。说明中说,我所要做的就是插入脚本,但显然在声明部分提到了一些类,我应该以某种方式将它们应用到我的应用程序中

我是国家管理的新手,因此有点不知所措。我已经做了8个小时了,我正在取得一些进展,但进展非常缓慢。非常感谢您的帮助

更新1:

我可以看到gist只会执行
GET
s,因为它没有在提供给
$.ajax()
调用的哈希中指定
type
键。当我在那里硬编码时,它当然会发出
POST
。在进一步的回顾中,似乎我并不需要使用要点


看起来我也错了,
History.pushState()
会以某种方式为我执行Ajax请求。它似乎只将条目推送到状态。这是完全恰当的。我感到困惑的原因是,这个应用程序以前使用了一个pushState包装器,它将处理状态管理和随后的Ajax请求。因此,当我不使用要点时,我的Ajax帖子不会出现的原因是它本来就不应该出现。

似乎只有History.js插件提供付费支持。虽然它看起来可能做得很好,但我一直无法真正找到任何关于使用它的真正答案。如果您是Javascript专家,正如作者所说,那么您可能会很好地使用它。如果您对州管理相对较新,并且正在寻找文档,您可能会遇到困难

为了满足我的简单需求,我回到了BBQ插件,它工作正常。它的文档比History.js插件更完整。我确信History.js在功能上是优越的。当文档更新并且我能够得到问题的答案时,我将切换