【问题标题】:Multiple AJAX '#url_token' on a base URL with Rails3使用 Rails3 的基本 URL 上的多个 AJAX '#url_token'
【发布时间】:2012-02-10 10:56:05
【问题描述】:

我正在开发一个带有 Rails 的 Web 应用程序,它更像是一个页面(想想仪表板)

我想要一个左侧条带获取一个列表,其中一个主应用程序区域在左侧呈现大部分应用程序(全部使用 jQuery)

在 Rails 中,我现在只有一个控制器仪表板。我希望左侧栏的请求到达适当的方法,以便我可以用 Json 回复。主要区域也是如此。

随着应用程序变得复杂,带有#specific URL 的 URL 也是我想要的。 示例 --> 'gamail.com#inbox' , 'gmail.com#drafts'

在这种情况下,路由将如何工作?我已阅读 Rails 官方文档并进行了很多搜索,但找不到太多信息。

【问题讨论】:

  • 有多种方式一个主要动作和几个不同的动作。传递一些确定的参数然后根据参数属性你可以调用这个动作然后根据你的要求渲染json,你可以将更多的传输代码重新分解为根据您的要求建模或创建单个类并返回 json 或其他内容。
  • 你能给我一些指导或例子吗?或者github上的一些项目代码?

标签: jquery ruby-on-rails ajax ruby-on-rails-3 routes


【解决方案1】:

我正在使用jQuery Back Button & Query 库。这将允许您创建哈希 URL 并响应 url 中的更改。然后你用那个散列部分做什么取决于你。

在那里查看examples

例如,假设在您的侧边栏中,您有一个书籍、葡萄酒或其他东西的列表。你像你说的那样创建一个url,http://yourwebsite.com#your-book,然后在你的javascript代码中,你必须将它翻译成正确的rails url,例如http://yourwebsite.com/books/your-book,并在你想要的页面部分显示JS/JSON待见。

因此,您的 rails-app 中的路线完全没有链接,您必须将 url-part 转换为正确的 url。

Backbone.js 或 spin.js 在客户端提供路由,但根据我的经验,我只能在非常简单的情况下使用它(但这也可能是由于我对此类框架的知识和经验有限)。

希望这会有所帮助。

【讨论】:

  • 这可以变得像你想要的那样复杂或简单。如果您即检查benalman.com/code/projects/jquery-bbq/examples/fragment-basic --> 在$(window).bind( 'hashchange', function(e) { 中,则可以检索url-fragment,如var url_part = $.param.fragment();。根据该 url_part 的内容,您可以将该片段转换为您可以从 Rails 服务器获取的某个 url。例如。在我提到的示例中,我只是执行var real_url= 'http://yourwebsite.com/books/' + url_part; 之类的操作。希望这会有所帮助。
【解决方案2】:

看看 Rails 与一些 Javascript MVC 框架的集成:

https://github.com/codebrew/backbone-rails

https://github.com/maccman/spine-rails

虽然您可以在没有它们的情况下完成此任务,但我相信如果您看看这些工具会更轻松,让您的生活更轻松。

【讨论】:

  • 我是一个 javascript 新手,目前已经使用 jquery 来编写客户端脚本。该应用程序不需要非常复杂,而是一个基本的 ajax 应用程序。
猜你喜欢
  • 2011-04-05
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多