2016-01-24 16 views
0

我的应用程序是Rails 4.1 with rails_admin 0.8.1。我想创建只显示属于登录用户的文章的自定义操作。如果我使用普通的Rails脚手架,我只是在文章控制器中创建一个新的动作并告诉它使用索引视图。Rails_admin自定义操作指定模板名称

我在rails_admin.rb中正确注册了这个动作,这样就显示出来了。但是,如何在RA中指定template_name?我不断收到Missing template rails_admin/main/myarticles ...当我浏览到http://localhost:3000/admin/article/myarticles

class Article 
    include Mongoid::Document 
    field :title, type: String 
    belongs_to :user 
    ... 
    def my_articles current_user 
    Article.where(user: current_user) 
    end 
end 

class Myarticles < RailsAdmin::Config::Actions::Base 
    RailsAdmin::Config::Actions.register(self) 
    register_instance_option :collection do 
    true 
    end 
    register_instance_option :visible? do 
    authorized? 
    end 
    register_instance_option :only do 
    Article 
    end 
    register_instance_option :template_name do 
    :index # this does not work 
    end 
    register_instance_option :controller do 
    proc do 
     @objects = Article.my_articles(current_user) 
    end 
    end 
end 

回答

1

终于想通了。

class Myarticles < Collectionaction 
    RailsAdmin::Config::Actions.register(self) 
    ... 
    register_instance_option :controller do 
     proc do 
     @objects = Article.where(user: current_user) 
     render :index 
     end 
    end 
    end 

如果需要,您可以将过滤器逻辑推入模型或其他对象。