【问题标题】:Rails_admin custom action specify template nameRails_admin 自定义操作指定模板名称
【发布时间】:2016-02-01 02:19:57
【问题描述】:

我的应用是带有 rails_admin 0.8.1 的 Rails 4.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

【问题讨论】:

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


    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 2015-11-21
      • 1970-01-01
      相关资源
      最近更新 更多