我在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 。
答案 0 :(得分:0)
好的......我刚刚意识到指定一个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