我的问题是:
我有一个名为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链接总是转到此操作。
感谢您的建议和对不起。如果您需要我的应用程序的代码,我会在其他答案中发布。
答案 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。
所以我们在其他控制器中有一个远程分页的弹出窗口,与所谓的当前操作不同。
由于