動的アクティブ管理スコープに問題があります。アプリ内の「プロジェクト」の「マネージャー」ごとにスコープを作成しようとしています。ただし、スコープは、新しいマネージャーが作成されたとき(またはプロジェクトに割り当てられたとき)には更新されないようですが、サーバーを再起動すると更新されます。したがって、コード自体は「機能」しますが、明らかに私が望む方法ではありません。私はruby/rails noobなので、何らかの方法でスコープを「更新」するために何かをする必要があるかどうかはわかりません。
参考までに、ActiveAdminを使用してHerokuCedarでRails3.2を使用しています
問題のコードは次のとおりです(これは機能しますが、サーバーの再起動後にのみ新しいマネージャーが導入されます)。
Manager.find_each do |m|
scope m.first_name do |projects|
projects.where(:manager_id => m.id)
end
end
そして、Active AdminProjectモデル全体:
ActiveAdmin.register Project do
menu :priority => 1
index do
column :name
column :company_name
column :status
column :projection do |project|
number_to_currency project.projection
end
column :updated_at
default_actions
end
scope :all
scope :working, :default => true do |projects|
projects.where(:status => 'working')
end
Manager.find_each do |m|
scope m.first_name do |projects|
projects.where(:manager_id => m.id)
end
end
end