【问题标题】:ActiveAdmin: undefined method 'unscoped'ActiveAdmin:未定义的方法“无范围”
【发布时间】:2013-05-20 13:37:44
【问题描述】:

我有一个模型,其中默认范围仅显示状态设置为 0 的记录:

default_scope where(status: 0)

这很好用,当我在 ActiveAdmin 页面中显示所有记录时,它只显示状态为 0 的记录。但是,我想在管理面板中创建另一个页面来显示所有记录,无范围的。现在,我有:

ActiveAdmin.register Donation, as: "All Donations" do

  scope_to :unscoped

  index :title => "Donations" do
    ...

但是我收到了这个错误:

undefined method `unscoped' for #<Admin::AllDonationsController:0x007feac043d638>

如果我在模型中为范围指定不同的名称,这似乎仍然会发生。我该如何解决这个问题?

【问题讨论】:

标签: ruby-on-rails scope activeadmin rails-activerecord


【解决方案1】:

我可以通过将其添加到捐赠登记块中来获得我想要的东西:

controller do
  def scoped_collection
    Donation.unscoped
  end
end

我还是不明白为什么 ActiveAdmin 看不到你在模型文件中定义的范围

【讨论】:

  • 安德鲁如何进行无范围连接。我使用default_scope -&gt; { kept } 来获取除丢弃之外的所有记录。我想要丢弃或不丢弃所有记录。这是我的查询Payout.unscoped.joins("INNER JOIN payments ON payments.id = payouts.payment_id").joins("LEFT OUTER JOIN virtual_accounts ON payments.mode_id = virtual_accounts.id").where("payments.mode_type = 'VirtualAccount'").where("payments.discarded_at IS NULL OR payments.discarded_at IS NOT NULL").where("virtual_accounts.discarded_at IS NULL OR virtual_accounts.discarded_at IS NOT NULL")
猜你喜欢
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
相关资源
最近更新 更多