Rails_admin自定义操作指定模板名称

时间:2016-01-24 19:56:26

标签: ruby-on-rails-4 rails-admin

我的应用是Rails 4.1,带有rails_admin 0.8.1。我想创建仅显示属于登录用户的文章的自定义操作。如果我使用常规的Rails脚手架,我只需在文章控制器中创建一个新动作,并告诉它使用索引视图。

我在rails_admin.rb中正确注册了操作,因此它显示出来。但是如何在RA中指定template_name?当我浏览http://localhost:3000/admin/article/myarticles

时,我不断收到Missing template rails_admin/main/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 个答案:

答案 0 :(得分:2)

终于明白了。

  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

如果您愿意,可以将过滤器逻辑推送到模型或其他对象中。