问题将分页ajax rails?

时间:2011-02-21 14:54:36

标签: ruby-on-rails ajax will-paginate

我的问题是:

我有一个名为new的视图/操作。在这个动作中,我可以创建product_packs。每包都有很多产品。好?

然后在new视图中,我有一个打开弹出窗口的按钮。此弹出窗口允许add_products打包。 这个产品用will_paginate插件分页。所以产品分页代码正在行动new。 OK?

此外,弹出窗口是部分内容。 (按钮是<%= button_to_function "add_product", "BasicModal("id_add_product_partial")"%>,可以通过Simplemodal插件打开弹出窗口。

好的,当我从列表中选择产品时,这些产品会加载到列表中。因此,当我在弹出窗口中单击add products按钮时,我不想再次看到此产品。 OK?

add_products按钮转到ajax请求ajax,我重新加载产品(我拒绝选定的产品)。

所以我想再次使用paginate产品,但是将paginate产品渲染为动作new。但必须转到add_products ajax行动。 OK?

我需要一个解决方案来重写will_paginate链接。

(示例:当我加载操作new费用&lt;%will_paginate @ products%&gt;但当我选择产品并添加到我的列表中时,将这些will_paginate链接替换为&lt;%will_paginate @products,#links转到ajax请求中的add_products操作%&gt;)

OR

当我打开弹出窗口时,我需要加载/初始化产品。因此弹出代码不在new视图上。弹出代码在add_products操作中加载产品集合,因此will_paginate链接总是转到此操作。

感谢您的建议和对不起。如果您需要我的应用程序的代码,我会在其他答案中发布。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。当我有一点时间,我将发布我的代码更多解释。

从广义上讲,我们可以结合使用oficcial gitHub文档中描述的ajax分页并使用Simple modal。

首先我创建一个button_to_remote到远程操作和一个带有ID attr的empty div,然后在这里我可以使用我的方法的逻辑,这样我们只会使用带有条件的will_paginate插件。

然后我可以使用RJS或在控制器渲染:更新。我们可以使用page.replace_html并使用我们的remote_form(部分)填充empty div。然后我用ID为空div调用Basicmodal函数。

然后我创建了一个map.connect relative_url,:controller“foo”,:action:bar。

所以我们在其他控制器中有一个远程分页的弹出窗口,与所谓的当前操作不同。

由于