Rails语法错误:意外的keyword_ensure,期待keyword_end

Muh*_*uhd 4 ruby ruby-on-rails erb

<h1>Get Ready</h1>
<% if params[:ballot_position].to_i > 1 %>
<p>
Voter <%= params[:ballot_position].to_i - 1 %>, go get voter <%= params[:ballot_position] %>
and switch places with them.
</p>
<p>
Voter <%= params[:ballot_position] %>, when you are ready, click the button marked "Ready" below.
</p>
<% @ballot_link = "/vote/#{params[:election_id]}/ballot/#{params[:ballot_position]}" %>
<a href="<%= @ballot_link %>" class="btn btn-primary">Ready</a>
Run Code Online (Sandbox Code Playgroud)

以上代码似乎导致:

ready.html.erb:13: syntax error, unexpected keyword_ensure, expecting keyword_end
ready.html.erb:15: syntax error, unexpected $end, expecting keyword_end
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?这个语法出了什么问题?

zea*_*soi 14

您收到的错误很可能源于尝试执行if-else条件,其中您<% end %> 之前 有额外的条件<% else %>.确保您的条件遵循规范的if-else-end逻辑,如下所示:

<% if ... %>
    <% @ballot_link = "/vote/#{params[:election_id]}/ballot/#{params[:ballot_position]}" %>
    <a href="<%= @ballot_link %>" class="btn btn-primary">Ready</a>
<% else %>
    ...
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 注意:Rails抱怨一个文件,而我丢失的`end`语句在另一个文件中. (2认同)