Kaminari与fields_for的分页

时间:2012-01-07 02:25:02

标签: ruby-on-rails ruby-on-rails-3.1 kaminari

我有一个公司模型的表格:

<%= form_for(@company) do |f| %>

我还有一个fields_for部分来编辑导入关系:

<%= f.fields_for(:imports) do |builder| %>

公司has_many:进口 和 导入belongs_to:公司

我想使用Kaminari进行分页,但问题是,Kaminari需要从控制器返回的页面对象,如:

@imports = Import.where(:company_id => current_user.company.id).page(params[:page]).per(50)    

这允许我使用Kaminari的分页方法:

<%= paginate @imports %>

可行,并在我的表单上显示页面链接,但是,它们显然没有链接到我的fields_for块。

我的问题是,如何用fields_for块完成分页? 我需要允许用户编辑导入模型的列表,并且可能有太多不适合在一个页面上,这就是为什么我要尝试分页。基本上我正在尝试为用户创建类似体验的电子表格。

我不需要使用Kaminari,但我使用的是Rails 3.1,它似乎是受欢迎的选择。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

您也可以将'fields_for`与一组对象一起使用。

所以你可以做到

<%= f.fields_for(:imports, @imports) do |builder| %>

如果这回答了你的问题那么你已经完成了!但是,如果你想让它像一个“电子表格”一样,那么也许不是那么多。

问题在于,如果您每次进入新页面时都这样做,则会丢失所有已修改的imports

这样做可能更简单:

  • 构建所有fields_for并隐藏它们。
  • 然后建立自己的AJAX'分页'。

这样,当提交更改时,它将传递所有imports及其更改,而不仅仅是当前页面。