5

我正在创建一个非常基本的 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 语句,但不知道我的错误是什么 - 我确信这是一个非常小的语法修复,但非常感谢您的帮助。

4

6 回答 6

13

您的代码中有错误。在开始之前,您的代码中
有额外的内容。 删除它可能会解决您的问题...endelse

于 2013-02-26T05:19:49.113 回答
9

正如其他人指出的那样,您的代码中的错误是您的和块<% end %>之间的额外错误。ifelse

在我看来,真正的解决方案是将以下内容添加到您的 Gemfile 中:

group :development do
  gem 'better_errors'
end

(当您看到由语法问题导致的此错误消息时,这通常是真正的解决方案。)

于 2013-02-26T05:25:05.077 回答
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>
于 2013-02-26T05:20:07.273 回答
1

如果您使用 HAML,这可能是原因:

- model_class = Products
  .products-page

会解决什么问题?识别。

- model_class = Products
.products-page
于 2013-09-30T19:45:06.283 回答
1

在我的情况下,我忘记了do一个循环:

<% @things.each |thing| %>

正确的格式是:

<% @things.each do |thing| %>
于 2017-08-16T20:04:28.407 回答
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>

应该是这样的

于 2013-02-26T05:22:49.347 回答