加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – HAML和嵌套布局

发布时间:2020-12-17 04:24:19 所属栏目:百科 来源:网络整理
导读:基本上我想做的是有一个根application.haml包含核心css和js然后网站布局就像这样 application.haml marketing.haml(s)有自己的css和标记 userbackend.haml(s)带有自己的css和标记 siteadministrators.haml(s)带有自己的css和标记 所以我尝试通过向我的控制器
基本上我想做的是有一个根application.haml包含核心css和js然后网站布局就像这样

> application.haml

> marketing.haml(s)有自己的css和标记
> userbackend.haml(s)带有自己的css和标记
> siteadministrators.haml(s)带有自己的css和标记

所以我尝试通过向我的控制器添加一个sub_layout来实现这一点,例如我的家庭控制器是一个营销部门得到:

def sub_layout
    "marketing"
  end

用户使用的实际应用程序的控制器

def sub_layout
   "userapplication"
end

def sub_layout
   "siteadministrators"
end

然后在我调用的application.haml中
= render(:parital =>“layouts /#{controller.sub_layout}”)

这将为nil返回“未定义的方法`格式”:NilClass“

像这里的许多人一样,我对rails和haml很新,特别是虽然我有.NET MVC和Spark View引擎的经验

关于这个haml是什么样子的任何想法?

解决方法

正如您所怀疑的那样,有一种标准的,更好的方法.
你的application.haml:
!!! XML
!!!
%html
  %head
    %title Title
    = stylesheet_link_tag 'global'
    = yield :styles
  %body
    #content
      = yield
    = yield :scripts

然后你的marketing.haml:

- content_for :styles do
  = stylesheet_link_tag 'marketing'

- content_for :scripts do
  = javascript_include_tag 'marketing'

%h1 It's Marketing time!

‘content_for:styles’块中的任何内容都会在布局中相应的yield的上下文中执行.你不需要为每个产量都有一个content_for,如果你有多个,结果会被连接起来.

请享用!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读