2013-02-26 78 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| %> 
相關問題