部分表格不能正确呈现

时间:2017-10-04 16:57:45

标签: ruby-on-rails-3 ruby-on-rails-5 activeadmin

我有一个Rails应用程序在Rails 3.x和ActiveAdmin 0.6.6上正常运行。但是我想将它升级到Rails 5和ActiveAdmin 1.x.我开始升级过程首先从3.x升级到4.x然后升级到5x,使用ActiveAdmin我用1.0.0测试,现在我使用Github的主站。

在Rails版本和ActiveAdmin中,应用程序都可以正常工作,但部分ActiveAdmin表单。

问题如下:

我有一个文件app/admin/menu.rb,其部分views/admin/menus/_form.html.erb。 部分包含菜单的形式。

这是部分(views/admin/menus/_form.html.erb)的内容:

<%= semantic_form_for [:admin, @menu], builder: ActiveAdmin::FormBuilder do |f| %>
  <% f.inputs 'Campos Menu' do %>
    <% f.input :project if current_admin_user.admin? %>
    <% f.input :title %>
    <% f.input :title_en %>
    <% f.input :item %>
    <% f.input :icon, as: :file %>
  <% end %>
  <% f.inputs 'Submenus' do %>
    <% f.has_many :submenus, heading: '' do |fa| %>
      <% fa.input :title, as: :string %>
      <% fa.input :title_en, as: :string %>
      <% fa.input :kind, as: :select, collection: Submenu.kind_collection %>
      <% fa.input :items_as, as: :select, collection: Submenu.items_as_collection %>
    <% end %>
  <% end %>
  <% f.actions do %>
    <% f.action :submit %>
  <% end %>
<% end %>

此文件的渲染结果仅为&#39;操作&#39;按钮,在这种情况下,提交&#39;按钮。有趣的是,如果我从部分中移除<% f.actions do %>...,那么<% f.inputs 'Submenus' do %>会被渲染,如果我删除后者则相同。在其他人中,正在包含end的最后一个块上呈现。

在Rails 4.x和5.x上观察到相同的行为(除了我没有测试的Rails 5.1.x之外)。

如果我将表单从部分移动到app/admin/menu.rb,则会正确呈现。这对我来说可能是一个解决方案,但是我有其他形式使用JQuery进行字段操作和前端的其他东西。

正如我之前所说,所有这些形式的部分都在Rails 3.x和ActiveAdmin 0.6.6上正常工作。

任何人都知道问题是什么?

免责声明:我不是Rails或ActiveAdmin专家,所以如果与这个问题有关,那么请耐心等待。

2 个答案:

答案 0 :(得分:1)

是的,activeadmin#3486我很高兴您找到了解决方法。我很好奇this Arbre branch是否适合你。很高兴看到人们还在升级,我会竭尽所能帮助你。

答案 1 :(得分:0)

我找到的解决方案是在部分上为=添加<% f.input(s) %>。有这样的<%= f.inputs ... %>而不是这个<% f.inputs ... %>解决了这个问题。