2012-01-07 33 views
1

我有一個公司的模式的一種形式:雷分頁與fields_for

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

我也有一個fields_for部分編輯的進口關係:

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

公司的has_many:進口 和 進口belongs_to:公司

我想使用Kaminari進行分頁,但問題是,Kaminari需要一個從c返回的頁面對象像這樣的ontroller:

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

這允許我使用從雷的PAGINATE方法:

<%= paginate @imports %> 

這一工程,並顯示我的表單頁面上的鏈接,但是,他們顯然沒有聯繫我fields_for塊。

我的問題是,我怎樣才能完成與fields_for塊分頁? 我需要允許用戶編輯導入模型的列表,並且可能會有太多適合一個頁面,這就是爲什麼我要分頁。基本上我正在嘗試爲用戶創建一個像體驗一樣的電子表格。

我不需要使用Kaminari,但我在Rails 3.1上,它似乎是流行的選擇。

感謝您的任何幫助。

+0

你有沒有考慮過will_paginate?另一種流行的選擇不知道它是否會解決您的問題,因此評論 – 2012-01-07 02:28:46

+0

我剛剛看了瑞安貝茨鐵路投http://railscasts.com/episodes/254-pagination-with-kaminari,他說will_paginate似乎不受支持......我可以使用正如他所建議的那樣,Rails 3的預發佈版本。 – 2012-01-07 02:30:35

+0

這可能有所幫助:http://stackoverflow.com/questions/5457580/problem-with-nested-resources-with-kaminari-pagination-gem – 2012-01-07 02:30:49

回答

0

您也可以將'fields_for`與一組對象一起使用。

所以,你可以做

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

如果回答您的問題,那麼你就大功告成了!但是,如果你希望它成爲像考驗那樣的「電子表格」,那麼可能不是那麼多。

問題是,如果你這樣做,每次你去一個新的頁面,你將失去所有編輯imports

可能這樣更簡單:

  • 建立所有fields_for和隱藏它們。
  • 然後建立你自己的AJAX'分頁'。

這樣,當提交更改時,它將通過所有imports及其更改,而不僅僅是當前頁面。

+0

我正在將此標記爲答案,因爲使用fields_for集合明確地解決了我的分頁問題。你提出了一個關於在切換頁面時放鬆編輯的好處,謝謝你的回答。 – 2012-01-07 06:13:15