<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>
以上代码似乎导致:
ready.html.erb:13: syntax error, unexpected keyword_ensure, expecting keyword_end
ready.html.erb:15: syntax error, unexpected $end, expecting keyword_end
发生了什么事?这种语法出了什么问题?
答案 0 :(得分: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 %>
答案 1 :(得分:0)
你正在使用if条件。所以你应该结束它。 erb的基本if条件语法是
<% if ...condition.. %>
Statement
<% end %>
你必须决定你在用什么?如果是条件或if-else条件
在您的情况下,没有&lt;%end%&gt;最后的子句,所以你必须添加它。
<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>
<% end %> # this is what you have to add
答案 2 :(得分:0)
我的问题是我在使用link_to创建链接时忘了结束do块。我的错误代码如下:
<%= link_to("#", :class => "example-class") do %>
Nested HTML goes here
我忘记了结束声明。正确的代码如下:
<%= link_to("#", :class => "example-class") do %>
Nested HTML goes here
<% end %>
希望这有助于某人。