2012-07-29 42 views
0

我一直在我的小项目几个月的工作之前,我认为这可能是我的方式来处理下面的问题是有点不优雅的RoR和有更多的传统方式:Ruby on Rails的ajax请求与任意数量的参数

我的服务使用一些javaScript API从特定的社交网络服务中检索信息,并在客户端执行信息处理,JS环境存储处理结果。所以我需要在不重新加载页面的情况下与用户交互:特别是有一些我需要工作的过滤器。

比方说,我需要按发布时间过滤请求的结果。还有类别选择器。我希望我的应用程序按以下方式工作:
1.用户类型发布年龄内的天数应为 - 没有任何“提交”或“应用”过滤器按钮
2.用户点击类别后正在应用过滤器 - 选择器:它们是主要的UI控制器,由RoR helper组成:

<li class="cat_selector"><%= link_to category.name, posts_path(:cat_id => category.id), :remote => true%></li> 

什么是'通常'的方法来解决这个问题?如何通过点击某个特定链接轻松地将所有控件的值“收集”在一个Ajax请求中? 谢谢!

回答

0

我会放弃默认轨的Ajax处理和沿这将导致匹配链接,阿贾克斯将数据从形式与ID some_form提交自己的

$('.cat_selector a').click(function(){ 
    $.ajax({ 
     url: this.href, 
     data: $("#some_form").serialize() 
    }) 
}) 

行写自己的东西。你当然可以建立一个任意的数据对象,但如果可以的话,使用表单要容易得多。

+0

谢谢!这看起来正是我想要的。 ):$('。cat_selector a')将回调绑定到一些元素集合,但回调需要区分它们:在RoR实现中,“posts_path(:cat_id => ** category.id **) “类别ID在链接中烘焙。那么'function'如何通过它被调用的cat_selector知道? – 2012-07-29 18:15:04

+0

需要吗?我将URL设置为单击的事件的href,以便应该可以(假设链接与原始实现中的链接保持一致) – 2012-07-29 20:19:59