这可能是我见过的那个狡猾的错误。
我目前正在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'
警报和页脚部分仍为空,头部分主要是默认代码轨道生成(减去turbolinks),导航栏部分是导航栏。
我在Application Controller上做的唯一更改是添加before_action :authenticate_user!
,因此只有登录的用户才能看到主站点。
但是当我运行我的服务器时,出现了以下内容:
它将自己的html源代码输出为纯文本!
并且这样做了两次:首先,在导航栏部分之后,最后在页脚部分之后
我从来没有遇到任何与此有关的事情,任何试图找到这个错误来源的尝试都是无用的
我怎么能阻止这种情况,或者至少找到这种疯狂的原因?
答案 0 :(得分:1)
将= if
替换为- if
。
以=
开头的行也会将if语句的返回值附加到视图,这是一个非HTML安全字符串。
以-
开头的行只是作为Ruby代码计算而不向视图添加任何内容。