范围在ActiveAdmin ROR中不起作用

时间:2014-05-08 10:01:10

标签: ruby-on-rails-4 activeadmin

为了让我能够快速过滤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

有人能看出问题所在吗? 非常感谢

2 个答案:

答案 0 :(得分:0)

这是您模型中的实际代码吗?

应该是:

scope :shipped, -> { where(shipped: true) }
scope :unshipped, -> { where(shipped: false) }

答案 1 :(得分:0)

意识到默认情况下shipped未设置为false,因此通过在Orders表中执行此操作来解决问题。