为了让我能够快速过滤ActiveAdmin中的记录,我在我的模型上定义了范围。我已经发货了#34;和"未发货#34;范围如下。出于某种原因,"发货"范围正在按预期工作,并显示已发货项目的数量,但"未发货的"范围没有做任何事情,它似乎不知道什么是未发货的。似乎我必须检查然后取消选中"发货"复选框,以便它知道它没有发货??
订购模式
class Order < ActiveRecord::Base
scope :shipped, where(:shipped => true)
scope :unshipped, where(:shipped => false)
end
ADMIN ORDER MODEL
ActiveAdmin.register Order do
scope :all, :default => true
scope :shipped
scope :unshipped
index do
selectable_column
column "Status", :sortable => :shipped do |s|
status_tag((s.shipped? ? "Shipped" : "Unshipped"), (s.shipped? ? :ok : :warning))
end
end
end
有人能看出问题所在吗? 非常感谢
答案 0 :(得分:0)
这是您模型中的实际代码吗?
应该是:
scope :shipped, -> { where(shipped: true) }
scope :unshipped, -> { where(shipped: false) }
答案 1 :(得分:0)
意识到默认情况下shipped
未设置为false,因此通过在Orders表中执行此操作来解决问题。