В ресурсах Active Admin отсутствует шаблон после обновления до v1.1.0 - PullRequest
0 голосов
/ 13 июня 2019
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 Ответ

2 голосов
/ 14 июня 2019

Я думаю, это потому, что create обычно не имеет своего собственного представления.

Чтобы исправить это, вы можете использовать эту конструкцию и указать действию контроллера, что делать в случае успеха / неудачи действия 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
...