2012-05-15 10 views
8

activeadminレールでtable_for、私は2枚のパネルを持って、最初はプライマリ・レコードであること、(has_manyのによる)は、第2のものに関連する情報のでshowは次のようになります。ソート、アクティブな管理ショーのページで

panel "Max Amount" do 
    table_for user.max_amount do 
    column 'Amount', :amount 
    column 'time', :updated_at 
    end 
end 

金額の列でこの高い値から低い値(または低い値から高い値)をソートできますか?

アップデート:デモ用ソース(https://github.com/gregbell/demo.activeadmin.info/blob/master/app/admin/users.rb)がソートされているようですが、実際のデモサイトに行くと動作しません。この機能はおそらく壊れていますか?回避策はありますか?

答えて

11

私がそれをするために見つけた唯一の方法は少しハッキーでした。 ActiveAdminは、列名とasc/descをparamsハッシュで渡します。次に、それをクエリに追加できます。

また、「sortable:true」をtable_for呼び出しに渡すようにしてください。 @idrinkpabstに基づいてレール4.2と

​​
+0

偉大な解決策は、悲しいことに、 'sortable:true'オプションはアクティブな管理者リソースのショーページで私には影響しませんでした。私はソースコードでそれを見ても動作するはずです。 –

+0

ああ、それは素晴らしい作品です。私は 'sortable::column_name'を忘れてしまいました。 –

3

、私は次のことをやった:

table_for group.devices.order(
    # Support for column name with underscore 
    # Support "no sort param" 
    (params[:order] ? params[:order] : '').gsub('_asc', ' asc').gsub('_desc', ' desc') 
), sortable: true do 
    # Directly using symboles and not using sortable: 
    column :presence 
    column :serial_number 
    column :apk_version 
    column :firmware_version 
end 

それは、より堅牢なバージョンです:

  • は「アンダースコア
  • サポートして列名を許可しますソートパラメータなし "
  • レールで動作4.2
関連する問題