我正在创建一个非常基本的rails应用程序(学习教程),并且无法理解为什么我收到此错误。我试过故障排除但无济于事。
我的代码:
<ul class = "nav pull-right">
<% if user_signed_in? %>
<li><%= link_to current_user.full_name, edit_user_registration_path %></li>
<li><%= link_to "Log Out", destroy_user_session_path, method: :delete %></li>
<% end %>
<% else %>
<li><%= link_to "Log In", new_user_session_path %></li>
<li><%= link_to "Sign Up", new_user_registration_path %></li>
<%end%>
</ul>
一切都很好,直到我添加了Else语句,但不知道我的错误是什么 - 我确定这是一个非常小的语法修复,但是你的帮助会非常感激。
答案 0 :(得分:11)
代码中有错误。
在end
开始之前,您的代码中会有额外的else
删除它可以解决您的问题......
答案 1 :(得分:8)
正如其他人所指出的,代码中的错误是<% end %>
和if
块之间的额外else
。
在我看来,真正的解决方案是将以下内容添加到您的Gemfile中:
group :development do
gem 'better_errors'
end
(当您看到由语法问题导致的此错误消息时,这通常是真正的解决方案。)
答案 2 :(得分:3)
删除<% end %>
之前的<% else %>
。
代码应如下:
<ul class = "nav pull-right">
<% if user_signed_in? %>
<li><%= link_to current_user.full_name, edit_user_registration_path %></li>
<li><%= link_to "Log Out", destroy_user_session_path, method: :delete %></li>
<% else %>
<li><%= link_to "Log In", new_user_session_path %></li>
<li><%= link_to "Sign Up", new_user_registration_path %></li>
<%end%>
</ul>
答案 3 :(得分:1)
在我的情况下,我在循环中忘记了do
:
<% @things.each |thing| %>
正确的格式是:
<% @things.each do |thing| %>
答案 4 :(得分:0)
<ul class = "nav pull-right">
<% if user_signed_in? %>
<li><%= link_to current_user.full_name, edit_user_registration_path %></li>
<li><%= link_to "Log Out", destroy_user_session_path, method: :delete %></li>
<% else %>
<li><%= link_to "Log In", new_user_session_path %></li>
<li><%= link_to "Sign Up", new_user_registration_path %></li>
<%end%>
</ul>
应该是这样的
答案 5 :(得分:0)
如果您使用HAML,可能是原因:
- model_class = Products
.products-page
将解决什么? Identation。
- model_class = Products
.products-page