RoR - 关闭form_tag

And*_*rew 1 ruby ruby-on-rails

如何关闭form_tag?这是我的代码:

<%= form_tag :action => 'authenticate' %>
<h1>Already a member?</h1>
<table>
  <tr>
    <td>Username*: </td>
    <td><%= text_field("userform", "user_name", :size => "20", :class => "field") %></td>
  </tr>
  <tr>
    <td>Password*: </td>
    <td><%= password_field("userform", "password", :size => "20", :class => "field") %></td>
  </tr>
  <tr>
    <td></td><td><input type="submit" value="Login" class="form_button" /></td>
  </tr>
</table>

<hr />

<%= form_tag :action => 'register' %>
<h1>Register</h1>
<table>
  <tr>
    <td>Username*: </td>
    <td><%= text_field("userform", "user_name", :size => "20", :class => "field") %></td>
  </tr>
  <tr>
    <td>Password*: </td>
    <td><%= password_field("userform", "password", :size => "20", :class => "field") %></td>
  </tr>
  <tr>
    <td>Email*: </td>
    <td><%= text_field("userform", "password", :size => "20", :class => "field") %></td>
  </tr>
  <tr>
    <td></td><td><input type="submit" value="Register" class="form_button" /></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我试过<% end %><% end_form_tag %>,但我得到的错误.(意外的kEND).我用谷歌搜索了一下,我见过的任何东西都没有帮助.哦,如果我删除水平标尺后的所有内容,表单工作正常.但我想在页面上有两个表格......

我正在使用Rails 2.3.5.

Jor*_*ing 11

form_tag还需要一个块,您可以在其中放置表单元素,然后它将自动关闭.来自文档:

<% form_tag '/posts' do -%>
    <div><%= submit_tag 'Save' %></div>
<% end -%>

# => <form action="/posts" method="post"><div><input type="submit" name="submit" value="Save" /></div></form>
Run Code Online (Sandbox Code Playgroud)

  • 这里的一个关键区别是"<%form_tag"与"<%= form_tag"前者是捕获块内所有内容并呈现开始和结束标记的方法,这就是你想要的. (3认同)

mik*_*iku 5

简短版本(另见:http://dev.rubyonrails.org/ticket/7391):

</form>
Run Code Online (Sandbox Code Playgroud)

正确版本:

<% form_tag '/someform' do -%> 
    <div><%= submit_tag 'Submit' %></div>
<% end -%>
Run Code Online (Sandbox Code Playgroud)