ActiveAdminとRubyonRailsを使用して、Webアプリの管理セクションを開発しています。多くの属性を持つモデルのインデックスページを作成しています。フィルタを有効にしたこれらの属性のほとんどは、乱雑になりすぎるため、インデックステーブルにすべて表示することはできません。使用されているフィルターに基づいてテーブルの列を動的に表示/非表示にする方法はありますか?この問題へのより良いアプローチはありますか?
質問する
1339 次
1 に答える
3
私はこの問題に対する少しの答えを見つけましたが、それはきれいではなく、間違いなくあまり乾燥していません。
if
ActiveAdminDSLメソッド内で実際にステートメントを使用できますindex
。また、ActiveAdminはフィルターをq[]
GETパラメーターとして渡します。たとえば、「username」という名前の文字列フィールドはq[username_contains]
GETパラメータになります。「number_of_posts」という名前の数値フィールドはq[number_of_posts_eq]
。これを使用して、フィルタリングされている場合は投稿の数を表示し、フィルタリングされていない場合はユーザーのメールアドレスを表示する例を見ることができます。
ActiveAdmin.register User do
index do
column :username
column :first_name
column :last_name
if(params[:'q[number_of_posts_eq]'])
column :number_of_posts
else
column :email
end
end
filter :number_of_posts
end
もちろん、さまざまなフィルタータイプがあるため、クエリパラメーターはすべてタイプによって異なります。数値タイプでさえ、等しい、より小さい、より大きいのそれぞれに、、、および接尾辞があり_eq
ます_lt
。_gt
于 2012-11-14T17:33:21.713 に答える