RailsAdmin 如何根据条件限制列表记录?
RailsAdmin how to limit listing records by conditions?
我有两个模型 - User
和 Article
,其中一个用户可以有多个 articles
。
在 User 中有一列 status
,其值为 1 或 0。
我的问题是,在用户列表中,我如何根据某些条件限制记录。例如'SELECT * FROM users WHERE status = 1'?
我已经研究过关联范围,但我认为这不是我需要的。
例如下图中,作者 'Kame Man' 不应出现在列表中。
您需要在 User
模型中设置 scopes
如下:
class User < ActiveRecord::Base
scope :active, -> { where(state: 1) }
scope :inactive, -> { where(state: 0) }
end
然后配置 RailsAdmin
以使用适当的范围作为默认值。在您的情况下,active
如下:
RailsAdmin.config do |config|
config.model User do
list do
scopes [:active]
end
end
end
有关详细信息,请参阅 RailsAdmin Wiki。
您提供的图像中的 "Add Filter" 下拉菜单包含您可以添加条件的列。
我有两个模型 - User
和 Article
,其中一个用户可以有多个 articles
。
在 User 中有一列 status
,其值为 1 或 0。
我的问题是,在用户列表中,我如何根据某些条件限制记录。例如'SELECT * FROM users WHERE status = 1'?
我已经研究过关联范围,但我认为这不是我需要的。
例如下图中,作者 'Kame Man' 不应出现在列表中。
您需要在 User
模型中设置 scopes
如下:
class User < ActiveRecord::Base
scope :active, -> { where(state: 1) }
scope :inactive, -> { where(state: 0) }
end
然后配置 RailsAdmin
以使用适当的范围作为默认值。在您的情况下,active
如下:
RailsAdmin.config do |config|
config.model User do
list do
scopes [:active]
end
end
end
有关详细信息,请参阅 RailsAdmin Wiki。
您提供的图像中的 "Add Filter" 下拉菜单包含您可以添加条件的列。