Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 Rails 4-ActiveAdmin布局为空,但应用程序布局适用于自定义控制器操作_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 4_Activeadmin - Fatal编程技术网

Ruby on rails Rails 4-ActiveAdmin布局为空,但应用程序布局适用于自定义控制器操作

Ruby on rails Rails 4-ActiveAdmin布局为空,但应用程序布局适用于自定义控制器操作,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,activeadmin,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Activeadmin,我有一个Rails4应用程序,只有管理员才可以使用active_admin。我已经使用它很长时间了,并且已经按照我想要的方式定制了它,它一直在工作,但是现在,我无法解决这个小问题 我的观察-- 我的版面有active_admin.html.erb和application.html.erb。当我重命名或删除我的active_admin.html.erb时。自定义操作可以正常工作并呈现,但其他页面显示包含两个页眉、正文和页脚的双重内容呈现,但当我保持管理员版面时,所有内容都可以工作,但自定义操作会呈

我有一个Rails4应用程序,只有管理员才可以使用active_admin。我已经使用它很长时间了,并且已经按照我想要的方式定制了它,它一直在工作,但是现在,我无法解决这个小问题

我的观察-- 我的版面有active_admin.html.erb和application.html.erb。当我重命名或删除我的active_admin.html.erb时。自定义操作可以正常工作并呈现,但其他页面显示包含两个页眉、正文和页脚的双重内容呈现,但当我保持管理员版面时,所有内容都可以工作,但自定义操作会呈现空白布局

我在admin/hall.rb模型中的控制器块中有一个自定义操作,它也会根据服务器日志执行,服务器日志也包括活动的_admin布局,但在屏幕上,我看不到任何布局,它只是空白,但当我在控制器块中显式使用应用程序布局时,它会工作

有人能帮我找出这里出了什么问题吗


提前感谢。

默认情况下,ActiveAdmin绕过Rails ActionView布局,转而使用自己的View::Pages组件内置于Arbre中。因此,ActiveAdmin中的active_admin.html.arb包含

insert_tag view_factory.layout

而且你也不需要覆盖它。ActiveAdmin不使用application.html.erb,这使我认为您可能正在使用ActiveAdmin自定义布局gem。您能否确认这一点,以及您使用的是RubyGems的ActiveAdmin版本还是GitHub的最新版本?事实上,Active Admin中的自定义页面是唯一使用ActiveAdmin::Views::pages::Layout的页面,后者随后会调用ActionView的内容作为布局:这可能会造成很多混乱,也可能是您遇到的不一致行为的原因。

,现在我知道是什么原因了。通过查看日志,我清楚地提到了布局方面的一些内容,当我搜索代码时,我发现有一个代码可以覆盖ActiveAdmin的BaseController。我现在删除了该代码,现在它以我想要的方式工作。我正在共享下面导致问题的代码

###admin/custom_layout.rb
###XXXXXXXXXXXXXXXXXXXXXXX    REMOVED THIS FILE ###########################
# module BaseControllerPatch
#   def determine_active_admin_layout
#     ##'activeadmin_custom_layout/application'
#     'active_admin'
#   end
# end

# module ActiveAdmin
#   class BaseController
#     prepend BaseControllerPatch
#   end
# end
现在我没有任何cusotm active_adin代码,默认情况下,它工作正常,无需添加自定义代码。但是,我想在body标记中添加自定义属性,我可以轻松地将其添加到initializers/active_admin.rb中


希望这能帮助别人。

谢谢@Piers C,Rubygems的ActiceAdmin和GitHub的ActiceAdmin是一样的…我就是这么想的…如果我错了,请纠正我。我正在使用gem直接在gem文件中指定它。我该怎么办?你需要更多的细节以便帮助我。在查看我的gem文件后…这是我发现的-。gem'activeadmin',git:这就是我的gem文件中的全部内容。我没有使用gem'activeadmin\u custom\u layout'好的,你使用的是GitHub的2.0.alpha,没有自定义的gem布局。在这种情况下,您不应该定义自己的活动_admin.html.erb,也不应该在控制器中指定布局。我不清楚您实现了什么定制,并试图保留什么定制。
###admin/custom_layout.rb
###XXXXXXXXXXXXXXXXXXXXXXX    REMOVED THIS FILE ###########################
# module BaseControllerPatch
#   def determine_active_admin_layout
#     ##'activeadmin_custom_layout/application'
#     'active_admin'
#   end
# end

# module ActiveAdmin
#   class BaseController
#     prepend BaseControllerPatch
#   end
# end