1

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

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

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

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

公司 has_many :imports 和 Import belongs_to :company

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

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

这允许我使用 Kaminari 的 paginate 方法:

<%= paginate @imports %>

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

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

我不需要使用 Kaminari,但我使用的是 Rails 3.1,它似乎是流行的选择。

感谢您对此的任何帮助。

4

1 回答 1

1

您也可以将“fields_for”与对象集合一起使用。

所以你可以做

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

如果这回答了你的问题,那么你就完成了!但是,如果您希望它成为类似考验的“电子表格”,那么可能不会那么多。

问题是,如果您每次转到新页面时都这样做,您将丢失所有已编辑的imports.

这样做可能更简单:

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

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

于 2012-01-07T03:24:41.553 回答