使用Sinatra中的表单字段的语法错误

时间:2014-11-30 09:22:14

标签: ruby forms syntax sinatra erb

我的index.html.erb文件中出现以下语法错误。我正在使用Ruby 2.1.2。和Sinatra 1.4.5。任何评论都表示赞赏。

syntax error, unexpected ')' @_out_buf = ''; @_out_buf.concat(( form_for(@user) do |f| ).to_s)

<%= form_for(@user) do |f| %>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="actions"><%= f.submit "Sign Up"%></div>
<% end %>

1 个答案:

答案 0 :(得分:2)

在ERB模板中打开一个块,就像使用form_for来电一样,您无法在此处使用<%=标记。虽然这在Rails中是必需的,但这只是因为他们patch ERB以相当可怕的方式实现它。

如果你不使用Rails,你必须使用它:

<% form_for(@user) do |f| %>
  <%# ... %>
<% end %>

最后,除非您使用外部库来实现此功能,否则请注意标准Sinatra中没有form_for