我正在尝试覆盖ActiveAdmin控制器的索引操作,以显示current_user的结果而不是所有结果.
controller do def index @user_tasks = UserTask.where(:user_id => current_user.id).page(params[:page]) end end
访问ActiveAdmin时,抛出异常:
ActionView::Template::Error (undefined method `base' for nil:NilClass): 1: render renderer_for(:index)
我正在使用rails 3.1和最新的ActiveAdmin版本. gem“activeadmin”,:git => ‘https://github.com/gregbell/active_admin.git’.
解决方法
这不再是必需的.
ActiveAdmin 0.4.4现在支持范围查询而不覆盖此方法.
请看这里:http://activeadmin.info/docs/2-resource-customization.html#scoping_the_queries
If your administrators have different access levels,you may sometimes
want to scope what they have access to. Assuming your User model has
the proper has_many relationships,you can simply scope the listings
and finders like so:
ActiveAdmin.register Post do scope_to :current_user # or if the association doesn't have the default name. # scope_to :current_user,:association_method => :blog_posts end