【问题标题】:Filtering in RailsAdmin using integer field of a belongs_to association在 RailsAdmin 中使用 belongs_to 关联的整数字段进行过滤
【发布时间】:2014-09-29 16:32:57
【问题描述】:

我正在尝试使用 RailsAdmin 和 belongs_to 关联(称为 Budget)在我的 User 模型上配置“字段搜索”。

class User < ActiveRecord::Base
  belongs_to :budget
end

class Budget < ActiveRecord::Base
  has_many :users
end

Budget 对象有一个 price_in_dollars 类型为 Integer 的字段。

在 RailsAdmin 中,查看Budget 对象,我可以单击“添加过滤器”并选择“以美元为单位的价格”,它允许使用“数字”或“...和...之间”进行过滤,指定范围.

我想在我的User 模型上使用类似的过滤器来过滤Budget,使用price_in_dollars 列。

RailsAdmin List documentation 声明:

Belongs_to 关联:

  • 将根据他们的 foreign_key (:team_id) 进行搜索
  • 如果标签不是虚拟的(:name、:title 等),则在他们的标签上
  • 您还可以在目标表或源表上指定列

基于此,我将此块添加到我的User 模型中:

rails_admin do
  list do
    field :budget do
      searchable [:price_in_dollars]
    end
  end
end

有了这个块,我现在可以输入诸如“500”之类的值并使用“包含”或“完全是”进行过滤,并使用price_in_dollars 列,而不是外键 ID。

但是,我无法像直接访问 Budget 管理页面那样按范围进行过滤。

有没有办法强制过滤菜单使用特定于数字或整数的选项?看来它可能将其视为关于过滤的字符串数据类型。

【问题讨论】:

  • 你找到解决办法了吗?
  • @Zahid,不,不幸的是我没有。我怀疑这目前不可能,但可能值得发帖到他们的mailing list 询问。

标签: ruby-on-rails ruby-on-rails-4 rails-admin


【解决方案1】:

您可以像这样搜索 belongs_to 关联的整数值

  field :budget, :integer do
    label 'Price in dollars'
    queryable true
    pretty_value do
      bindings[:object].budget.price_in_dollars
    end        
    searchable [{Budget => :price_in_dollars}]
  end

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多