Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 部分表格';渲染不好_Ruby On Rails 3_Ruby On Rails 5_Activeadmin - Fatal编程技术网

Ruby on rails 3 部分表格';渲染不好

Ruby on rails 3 部分表格';渲染不好,ruby-on-rails-3,ruby-on-rails-5,activeadmin,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的master Rails版本和ActiveAdmin版本中的应用程序都运行良好,但是ActiveAdmin表单处于局部状态 问题如下: 我有一个文件app/admin/menu.rb,它有一个部分vi

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

Rails版本和ActiveAdmin版本中的应用程序都运行良好,但是ActiveAdmin表单处于局部状态

问题如下:

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

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


此文件的渲染结果仅为“操作”按钮,在本例中为“提交”按钮。有趣的是,如果我从片段中删除
,那么
就会被渲染,如果我删除后面的片段,效果也是一样的。在其他情况下,将在包含
结尾的最后一个块上渲染

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

如果我将表单从部分移动到
app/admin/menu.rb
中,它将正确呈现。这对我来说可能是一个解决方案,但是我有其他表单,它们利用JQuery在前端处理字段和其他内容

正如我之前所说,所有这些表单部分在Rails3.x和ActiveAdmin0.6.6上都正常工作

有人知道问题出在哪里吗


免责声明:我不是Rails或ActiveAdmin专家,因此请容忍我与此问题相关的愚蠢错误。

是的,我很高兴你找到了解决方法。我很好奇是否能帮你修好。很高兴看到人们仍在升级,我将尽我所能提供帮助。

我找到的解决方案是在零件上为
添加
=
。用这样的
代替这个
解决了这个问题。

嗨,在我的项目中测试这个建议分支的方法是什么?如何在文件中指定它。无论如何,我找到了解决问题的方法,但我不确定这是否是使用表单组件的预期方式,因此我所做的工作就是在大多数
f.
声明中添加
=
,即
Campos Menu'do%>
。似乎缺少的
=
阻止了表单正确呈现。你知道这是一个合适的解决方案还是会导致其他问题吗?
gem'arbre',git:'https://github.com/varyonic/arbre.git',branch:'46_rails_tag_helper_with_block_in_arbre_template'
我个人建议按照流程使用.arb partials,而不是.erb with
active_admin_form_for resource do | f |……
我将尝试一下abre gem。但是将我所有的部分迁移到abre有点复杂。让我看看!谢谢你的支持。
<%= 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 %>