我有一个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专家,所以如果与这个问题有关,那么请耐心等待。
答案 0 :(得分:1)
是的,activeadmin#3486我很高兴您找到了解决方法。我很好奇this Arbre branch是否适合你。很高兴看到人们还在升级,我会竭尽所能帮助你。
答案 1 :(得分:0)
我找到的解决方案是在部分上为=
添加<% f.input(s) %>
。有这样的<%= f.inputs ... %>
而不是这个<% f.inputs ... %>
解决了这个问题。