2009-12-14 3 views
1

어떻게 form_tag를 닫을 수 있습니까? 여기 내 코드는 다음과 같습니다 RoR - 닫는 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> 

나는 <% end %><% end_form_tag %>을 시도했지만 나는 오류를 얻었다. (뜻밖의 kEND). 나는 조금 주위에 인터넷 검색을했고, 내가 보았던 아무것도 실제로 도움이되지 않는다. 오, 내가 수평 눈금자 뒤에 모든 것을 지우면 양식이 잘 작동합니다. 하지만 페이지에 두 개의 양식이 있습니다.

레일 2.3.5를 사용하고 있습니다.

답변

11

form_tag는 자동으로 종료됩니다 그러자 당신은 양식 요소를 넣을 수있는 내부 블록을합니다. the docs에서 :

<% 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> 
+0

올바른 방법으로 +1하려면 form_tag –

+3

여기에서 중요한 차이점은 "<% form_tag"대 "<% = form_tag"입니다. 전자는 블록 내부의 모든 것을 캡처하여 여는 태그와 닫는 태그를 모두 렌더링하는 방법입니다. 너 여기 있길 바래. –

5

짧은 버전 (참조 : http://dev.rubyonrails.org/ticket/7391를)

</form> 

?

올바른 버전 :

<% form_tag '/someform' do -%> 
    <div><%= submit_tag 'Submit' %></div> 
<% end -%> 
+0

나는 그렇지 않았습니다. 그러나 나는 그랬다. 그리고 그것은 효과가있었습니다. – Andrew

0

를 해결하기 위해 내 방법은 바로 끝나기 전에 버튼을 제출하고 버튼을 표시 할 수 있도록 포함하는 것입니다.

<%= submit_tag('',style: 'width:0;height:0;display:none;') %> 
<% end %> 

이렇게하면 원하는 위치에 끝 태그를 넣을 수 있습니다.

0

수정하면 양식 태그가 표 태그 바로 위에 있습니다.

<%= form_tag(update_password_path, :method=> "post") do |f| %> 
<p id="notice"><%= notice %></p> 
<table align="center">