2013-02-26 76 views
3

我创建了一个非常基本的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语句,但不知道我的错误是 - 我敢肯定,这是一个非常小的语法修正,但你的帮助会非常感激。

回答

11

代码中有错误。
else开始前,您的代码中有额外的end
删除可能会解决您的问题...

+0

,完美的工作,谢谢! – 2013-02-26 05:34:00

+0

很好听.. .. !!! – 2013-02-26 05:55:28

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> 
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> 

它应该是这样的

8

错误在你的代码,正如其他人所指出的,是你的if之间的额外<% end %>else块。

在我看来,真正的解决办法是添加以下到您的Gemfile:(这通常是当你看到从语法问题导致此错误消息的真正的解决方案)

group :development do 
    gem 'better_errors' 
end 

+0

这很有趣,我没有听说过这种宝石 - 我会试试看,谢谢! – 2013-02-26 05:35:31

+0

@bdares:这是一个很好的帖子.. !!!感谢分享这个想法.. – 2013-02-26 05:50:53

0

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

- model_class = Products 
    .products-page 

会有什么解决? Identation。

- model_class = Products 
.products-page 
0

在我来说,我在一个循环忘了do

<% @things.each |thing| %> 

的正确格式为:

<% @things.each do |thing| %> 
相关问题