Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.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 部分在ActiveAdmin中呈现两次_Ruby On Rails_Activeadmin - Fatal编程技术网

Ruby on rails 部分在ActiveAdmin中呈现两次

Ruby on rails 部分在ActiveAdmin中呈现两次,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,我的部分被渲染了两次:在页面顶部和应该渲染的位置。 显然,只有当我有特定于ActiveAdmin的代码(表_)时才会发生这种情况 非常感谢您的帮助。 下面是我正在使用的一些代码片段 在我的活动管理文件中: panel "Children - SubProcesses" do text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id) div render :p

我的部分被渲染了两次:在页面顶部和应该渲染的位置。 显然,只有当我有特定于ActiveAdmin的代码(表_)时才会发生这种情况

非常感谢您的帮助。 下面是我正在使用的一些代码片段

在我的活动管理文件中:

panel "Children - SubProcesses" do
    text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id)
    div render :partial => "/admin/process_nodes/child_list", :locals => { :parent => process_node }
end
在\u child\u list.html.erb文件中

<%=
unless parent.children.empty?
table_for parent.children do 
    column :id
    column :name
    column "Actions" do |child_node|
            text_node link_to "View", admin_process_node_path(child_node)
            text_node " "
            text_node link_to "Edit", edit_admin_process_node_path(child_node)
            text_node " "
            text_node link_to "Delete", admin_process_node_path(child_node),  :method => :delete, :confirm => "Delete?"
    end
end
end
%>
:删除,:确认=>“删除?”
结束
结束
结束
%>

据我所知,ActiveAdmin将根据当前模型/资源名称自动获取分部的路径。这意味着传递
“子列表”
将导致
“/admin/process\u nodes/\u child\u list.html.erb”

用法将是

div render "child_list", :locals {  :parent => process_node }
另外,似乎最好在ActiveAdmin面板块中包含
语句,除非
语句。如果没有子进程,则不必添加不必要的渲染调用

panel "Children - SubProcesses" do
    text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id)

    unless parent.children.empty?
        div render "child_list", :locals {  :parent => process_node }
    end
end
最后,我不知道使用partial是否有很大的好处。我不知道你是否还有其他部分,但你可以这样写

panel "Children - SubProcesses" do
  text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id)

  unless parent.children.empty?
    table_for parent.children do 
      column :id
      column :name
      column "Actions" do |child_node|
        text_node link_to "View", admin_process_node_path(child_node)
        text_node " "
        text_node link_to "Edit", edit_admin_process_node_path(child_node)
        text_node " "
        text_node link_to "Delete", admin_process_node_path(child_node),  :method => :delete, :confirm => "Delete?"
        end
    end
  end
end

可能是您做的第一件事,但是您是否在项目中搜索了“/admin/process\u nodes/child\u list”之类的内容,以查看您是否也意外地在其他视图中渲染了部分?在代码中直接或间接地从何处调用了panel方法?请引用调用代码的位置。