ActiveAdmin belongs_to 未确定关联范围

ActiveAdmin belongs_to not scoping the association

我在 Active Admin 中有两个模型,其中一个属于另一个 has_many 关联:

class Library < ActiveRecord::Base
  has_many :books

class Book < ActiveRecord::Base
  belongs_to :library

ActiveAdmin.register Library

ActiveAdmin.register Book do
  belongs_to :library
  navigation_menu :library
end

问题 问题是,当访问特定图书馆(例如:admin/libraries/123/books)的图书页面时,它总是向我显示所有可用的图书,而不是我选择的图书馆中的图书。有什么想法或者这可能是一个已知问题吗?

我在 Rails 版本 4.2.0 和 ActiveAdmin 主分支 1.0.0.pre

好的...我刚刚意识到像下面这样指定 scoped_collection 会破坏 ActiveAdmin 包含的 belongs_to 范围。

controller do
  def scoped_collection
    Book.includes([:pages])
  end
end

解决方案 是将查询包含在 scoped_collection 中,如下所示:

controller do
  def scoped_collection
    Book.where(library_id: params[:library_id]).includes([:pages])
  end
end