ActiveAdmin belongs_to没有确定关联范围

时间:2015-03-30 15:02:39

标签: ruby-on-rails activeadmin

我在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

1 个答案:

答案 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