【问题标题】:How to stop outputing my own html source?如何停止输出我自己的 html 源代码?
【发布时间】:2015-04-25 21:16:18
【问题描述】:

这可能是我遇到过的 werdeist bug。

我目前正在 Ruby on Rails 上构建一个供个人使用的应用程序,但距离完成还有很长的路要走。 主要布局如下:

!!!
%html.uk-height-1-1
%head
    = render 'layouts/head'
%body.uk-height-1-1.uk-width-1-1
    = if user_signed_in?
        .alerts
            = render 'layouts/alerts'
        .navbar
            = render 'layouts/navbar'
    .uk-container.uk-height-1-1
        = yield
    = if user_signed_in?
        .footer
            = render 'layouts/footer'

警报和页脚部分仍然是空的,头部部分主要是默认的代码 rails 生成(减去 turbolinks),而导航栏部分是导航栏。 我在应用程序控制器上所做的唯一更改是添加了before_action :authenticate_user!,因此只有登录的用户才能看到主站点。

但是当我运行我的服务器时,出现了以下内容:

它将自己的 html 源代码输出为纯文本!
并且这样做了两次:首先,在导航栏部分之后,最后在页脚部分之后。
我从来没有遇到过类似的情况,任何试图找到这个错误的根源都是无用的。
我怎样才能阻止这种情况,或者至少找到这种疯狂的原因?

【问题讨论】:

  • 你的视图文件名是什么?
  • @fivedigit 布局为application.html.haml,根为home/index.html.haml
  • 只是一个猜测,但是如果将= if 都替换为- if 会发生什么?
  • @fivedigit 我现在非常讨厌自己。
  • 别恨自己,怪你的键盘。 ;) 解决了吗?

标签: ruby-on-rails devise haml


【解决方案1】:

= if 都替换为- if

= 开头的行还将 if 语句的返回值附加到视图中,这是一个非 HTML 安全字符串。

- 开头的行仅被评估为 Ruby 代码,而不向视图附加​​任何内容。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2023-02-18
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多