2013-10-19 104 views
7

我是一個新手在rails中,我試圖創建一個基於教程的論壇應用程序。這是我的論壇網頁,但我不斷收到錯誤:Rails的語法錯誤:意外的keyword_ensure,期待輸入結束

syntax error, unexpected keyword_ensure, expecting end-of-input 

Extracted source (around line #33): 
30 
31 <p><% if admin? %><%= link_to "New Forum", new_forum_path %><% end %></p> 

這裏是拋出錯誤論壇索引頁:

<% title "Forums" %> 

<table> 
    <tr> 
    <th width="70%">Forum</th> 
    <th width="30%">Last Post</th> 
    </tr> 
    <% for forum in @forums %> 
    <tr> 
     <td><h4><%= link_to h(forum.name), forum_path(forum.id) %></h4> 
     <small><%= forum.topics.count %> topics</small><br /> 
     <%=h forum.description %></td> 
     <td class="right"> 
     <% if forum.most_recent_post %> 
     <%= distance_of_time_in_words_to_now forum.most_recent_post.last_post_at %> 
     ago by 
     <%= link_to forum.most_recent_post.user.username, "https://stackoverflow.com/users/#{forum.most_recent_post.last_poster_id}" %> 
     <% else %>no posts<% end %> 
     </td> 
     <% if admin? %> 
     <td><%= link_to "Edit", edit_forum_path(forum) %> 
    <% end %></td> 
    <!-- <% end %> --> 
    <% if admin? %> 
    <td><%= link_to "Destroy", forum, :confirm => 'Are you sure?', :method => :delete %></td> 
    <% end %> 
</tr> 
    <% end %> 

<p><% if admin? %><%= link_to "New Forum", new_forum_path %><% end %></p> 

回答

1

所有我能看到錯是你設置結束它應該在這裏之前

 <% if admin? %> 
     <td><%= link_to "Edit", edit_forum_path(forum) %> 
    <% end %></td> 

所以嘗試將其移動這樣

 <% if admin? %> 
     <td><%= link_to "Edit", edit_forum_path(forum) %> 
    </td><% end %> 
+0

不,我根據指定進行了更改,但我得到了同樣的錯誤。 – trialError

4

<!-- <% end %> -->這是什麼做的?一個html評論ERB標籤仍然會評估。去掉它。如果你想評論ruby代碼使用#而不是像<% #end %>

+0

當我進行更改時,現在的錯誤是意外的tCONSTANT。我意識到這是因爲沒有終止的字符串常量。但是,我沒有發現任何未終止的字符串常量。對此有何建議? – trialError

+0

或者,更自然的Ruby評論:<%# end %> –

1

我認爲你已經打開和關閉塊的順序混亂起來。 iffor都必須在適當的時候關閉。

本傑明提到的註釋掉的結束標記實際上很重要,但放在了錯誤的位置,必須在</tr></table>標記之間,以關閉for forum in @forums

我準備了一些修改後的版本,以便更好地理解它。雖然沒有真正測試過它。

<% title "Forums" %> 

<table> 
    <tr> 
    <th width="70%">Forum</th> 
    <th width="30%">Last Post</th> 
    </tr> 
    <% for forum in @forums %> 
    <tr> 
     <td> 
     <h4><%= link_to h(forum.name), forum_path(forum.id) %></h4> 
     <small><%= forum.topics.count %> topics</small><br /> 
     <%=h forum.description %></td> 
     <td class="right"> 
     <% if forum.most_recent_post %> 
     <%= distance_of_time_in_words_to_now forum.most_recent_post.last_post_at %> 
     ago by 
     <%= link_to forum.most_recent_post.user.username, "https://stackoverflow.com/users/#{forum.most_recent_post.last_poster_id}" %> 
     <% else %> 
     no posts 
     <% end %> 
     </td> 
     <% if admin? %> 
     <td> 
      <%= link_to "Edit", edit_forum_path(forum) %> 
     </td> 
     <% end %> 
     <% if admin? %> 
     <td><%= link_to "Destroy", forum, :confirm => 'Are you sure?', :method => :delete %></td> 
     <% end %> 
    </tr> 
    <% end %> 
</table> 
<p> 
    <% if admin? %> 
    <%= link_to "New Forum", new_forum_path %> 
    <% end %> 
</p> 
3

正確格式化的代碼對診斷像這樣的問題(不匹配等)有很長的路要走。嘗試以下內容:

<% title "Forums" %> 

<table> 
    <tr> 
    <th width="70%">Forum</th> 
    <th width="30%">Last Post</th> 
    </tr> 
    <% for forum in @forums %> 
    <tr> 
     <td> 
     <h4><%= link_to h(forum.name), forum_path(forum.id) %></h4> 
     <small><%= forum.topics.count %> topics</small> 
     <br /> 
     <%=h forum.description %> 
     </td> 
     <td class="right"> 
     <% if forum.most_recent_post %> 
      <%= distance_of_time_in_words_to_now forum.most_recent_post.last_post_at %> 
      ago by 
      <%= link_to forum.most_recent_post.user.username, "https://stackoverflow.com/users/#{forum.most_recent_post.last_poster_id}" %> 
     <% else %> 
      no posts 
     <% end %> 
     </td> 
     <% if admin? %> 
     <td><%= link_to "Edit", edit_forum_path(forum) %></td> 
     <td><%= link_to "Destroy", forum, :confirm => 'Are you sure?', :method => :delete %></td> 
     <% end %> 
    </tr> 
    <% end %> 
</table> 

<% if admin? %> 
    <p><%= link_to "New Forum", new_forum_path %></p> 
<% end %> 
相關問題