ruby-on-rails - ActiveAdmin:未定义的方法 'unscoped'

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

我有一个模型,其中默认范围仅显示状态设置为 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>

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

最佳答案

通过将其添加到捐赠登记 block 中,我能够得到我想要的东西:

controller do
  def scoped_collection
    Donation.unscoped
  end
end

我仍然不明白为什么 ActiveAdmin 无法看到您在模型文件中定义的范围

关于ruby-on-rails - ActiveAdmin:未定义的方法 'unscoped',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743658/

相关文章:

c++ - 为什么我们可以返回对类成员变量的引用

perl - Perl 包变量什么时候超出范围?

ruby-on-rails - Rails 关注点 : class method with block

ruby-on-rails - 如何永久设置 RAILS_ENV

ruby-on-rails - will_paginate和inherited_resources不能一起工作

ruby-on-rails - Rails - ActiveAdmin 和 Papertrail - 一种 DRY 方法

ruby-on-rails-3 - Rails 3 Active Admin将预设值添加到新记录

ruby-on-rails - Ruby Net::FTP,从 ftp.list() 中提取文件名

javascript - 停止从不同函数 onclick button2 调用 onclick button1 的递归函数

ruby-on-rails - 如何添加到 ActiveAdmin View 的链接