我手工制作了几个静态测试页面,这些页面一直在工作,直到我向页面标题的应用程序助手添加了标准调用<% provide(: title,“page title”) %>。因此,我使用了rails生成控制器,并成功地执行了每一个。
然后我再次尝试这三个页面,在两个页面上得到相同的错误,在第三个页面上得到一个不同的错误。以下是错误消息。请注意“未定义的局部变量”"Tige“行中”Tige“前后的单引号。为什么会出现错误,为什么同一行代码会出现不同的错误?
SyntaxError in StaticPagesController#betty
/home/ubuntu/workspace/pets_sandbox_app/app/views/static_pages/betty.html.erb:2:语法错误,意外的tCONSTANT,应为keyword_do或'{‘或'(’'.freeze;provide(:title,“Betty Boop”)^提取的源代码(围绕line #2):1 2 <% provide(:title,“Betty Boop”) %> 3
贝蒂(Boop)
<% provide(:title, “Betty Boop”) %>
<h1>Betty <small>(Boop)</small></h1>
SyntaxError in StaticPagesController#buster
/home/ubuntu/workspace/pets_sandbox_app/app/views/static_pages/buster.html.erb:1:语法错误,意外的tCONSTANT,应为keyword_do或'{‘or '(’...vide(:title,“Buster Brown”) ... ^提取的源代码(围绕line #1):1 <% provide(:title,“Buster Brown”) %> 2
巴斯特·布朗(《我住在鞋里》)
3
<% provide(:title, “Buster Brown”) %>
<h1>Buster Brown <small>('I live in a shoe')</small></small></h1>
<nav class="navbar navbar-blue navbar-default">
NameError in StaticPages#tige
显示/home/ubuntu/workspace/pets_sandbox_app/app/views/static_pages/tige .html.erb where line #1 raised:未定义的局部变量或#<# :0x00000003a10380>提取源代码的方法‘“Tige”’(在line #1周围):1 <% provide(:title,“Tige”) %> 2
Tige (也住在鞋里)
3
<% provide(:title, “Tige”) %>
<h1>Tige <small>(lives in a shoe, too)</small></small></h1>
发布于 2017-07-17 19:32:37
我越看越觉得问题出在代码中的“卷曲引号”(例如“
和”
)。你想要写你的代码使用直引号(例如"
)。使用字处理程序编辑代码可能是问题的根源。
错误消息更改的原因是上一个示例没有空格,因此它被解释为单个标识符。大括号被视为变量名的一部分,因此“Tige”被视为变量名,但该变量名在任何地方都没有定义。
试着这样做:
<% provide(:title, "Tige") %>
<h1>Tige <small>(lives in a shoe, too)</small></small></h1>
https://stackoverflow.com/questions/45151537
复制相似问题