升级到v1.1.0后,Active Admin资源丢失了模板

时间:2019-06-13 04:49:42

标签: ruby-on-rails activeadmin

ActiveAdmin.register Document do
  controller do
    def create
      create!
    end
  end
end

这在ActiveAdmin 0.6.6中运行良好,但是升级到v1.1.0后,它找不到创建模板,并且抛出了ActionView::MissingTemplate

Missing template documents/create, active_admin/resource/create, active_admin/base/create, inherited_resources/base/create, application/create with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :arb, :haml]}. Searched in:
  * "/Users/ent/Desktop/Apps/vent/app/views"
  * "/Users/ent/.rvm/gems/ruby-2.5.5/gems/activeadmin-1.1.0/app/views"
  * "/Users/ent/.rvm/gems/ruby-2.5.5/gems/kaminari-core-1.1.1/app/views"
  * "/Users/ent/.rvm/gems/ruby-2.5.5/gems/devise_cas_authenticatable-1.10.4/app/views"
  * "/Users/ent/.rvm/gems/ruby-2.5.5/gems/devise-4.6.2/app/views"

自升级以来,我有什么变化吗? 我已经尝试了以下版本的活动管理员:1.0.0、1.2.0、1.2.1、1.3.0、1.3.1、1.4.0、1.4.1、1.4.2、1.4.3,但是它们都有同样的错误。降级到0.6.6似乎可以解决问题。

1 个答案:

答案 0 :(得分:2)

我认为这是因为create通常没有自己的视图。

要修复此问题,您可以使用此构造并指示控制器操作在创建操作成功/失败时如何处理。在此示例中,成功后,我们将重定向到资源详细信息,失败时,我们将呈现new视图(最有可能是资源验证失败,用户需要更新并重新提交表单):

controller do
  def create
    super do |success, failure|
      success.html { redirect_to your_resource_path(resource), notice: "#{resource.name} has been created." }
      failure.html { render :new }
    end
  end
end