我正在使用 ActiveAdmin 和 Ruby on Rails 来开发 web 应用程序的管理部分。我正在为具有很多属性的模型构建索引页面。我为这些属性中的大多数启用了过滤器,但我无法在索引表上全部显示它们,因为它变得太杂乱了。有没有办法根据使用的过滤器动态显示/隐藏表格上的列?有没有更好的方法来解决这个问题?
问问题
1339 次
1 回答
3
我已经找到了这个问题的一些答案,但它并不漂亮,而且绝对不是很干燥。
您实际上可以if
在 ActiveAdmin DSLindex
方法中使用语句。此外,ActiveAdmin 将过滤器作为q[]
GET 参数传递。例如,名为“用户名”的字符串字段将是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 回答