gpt4 book ai didi

ruby-on-rails - rails 3:命名空间路由的布局

转载 作者:行者123 更新时间:2023-12-03 08:51:55 25 4
gpt4 key购买 nike

我已经在“admin” namespace 下创建了许多 Controller 和 View ,但是它们仍在从应用程序布局中提取。如何制作适用于命名空间路由中所有 View 的布局,而仍将当前布局用于其他页面?

最佳答案

一般来说,如果没有与 Controller 匹配的布局,Rails将使用应用程序布局。例如,如果您有一个PeopleController,Rails会查找layouts / people.html.erb,如果找不到,则为application.html.erb。

如果要覆盖此约定,则可以显式指定特定的布局。

class Admin::PeopleController
layout 'some_layout'
end

然后,该 Controller 将使用some_layout.html.erb而不是寻找people.html.erb和application.html.erb。

,但是,如果您希望对事物进行分组,这可能是一个更好的方法:如果您具有从ApplicationController继承的基本AdminController,则可以从AdminController继承Admin::PersonController,它将继承admin布局。

我不知道您的代码的细节,但是您可能有:
class AdminController
def show
#render a template linking to all the admin stuff
end
end

app/controllers/admin/people_controller.rb:
class Admin::PeopleController < AdminController
#your awesome restful actions in here!
end

views/layouts/admin.html.erb:
Hello from the Admin!
<%= yield %>

要实现的一件事是Admin::PeopleController将继承AdminController定义的任何操作(就像ApplicationController中定义的所有内容在所有子类中都可用一样)。通常这不是问题,因为无论如何您都可能会覆盖这些方法,而只是要注意它。如果没有AdminController,则仅出于布局目的就可以执行任何操作而无需执行任何操作。

关于ruby-on-rails - rails 3:命名空间路由的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com