form_for, form_tag의 차이점은 무엇입니까?
form_for와 form_tag의 차이점은 무엇입니까? form_remote_for와 form_remote_tag가 다른가요?
특정 모델에는 form_for를 사용합니다.
<% form_for @person do |f| %> # you can use f here
First name: <%= f.text_field :first_name %>
Last name : <%= f.text_field :last_name %>
<% end %>
Form_tag 기본 양식 생성,
<%= form_tag '/person' do -%>
<%= text_field_tag "person", "first_name" %>
<% end -%>
form_for
첫 번째 인수로 activerecord 객체를 선호합니다. 양식을 쉽게 만들거나 편집 할 수 있습니다 ( "새"보기에서 사용하려면 다음과 같이 컨트롤러에서 빈 인스턴스를 만들어야합니다.
def new
@foo = Foo.new
end
또한 양식 변수를 블록에 전달하므로 양식 자체 내에서 모델 이름을 반복 할 필요가 없습니다. 모델 관련 양식을 작성하는 데 선호되는 방법입니다.
form_tag
단지 양식 태그를 생성합니다 (물론,와 같이 위조 방지 숨겨진 필드를 조용히 준비합니다 form_for
). 모델이 아닌 양식에 가장 적합합니다 (실제로는 단순한 검색 양식 등에 대해서만 사용합니다).
이와 유사하게, form_remote_for
그리고 form_remote_tag
대신에 표준 HTTP 메소드로 끝나는의 모델 관련 서식에 적합 각각 관련 형태를 모델링하지 만 (GET은 POST는 ...) 그들은 아약스 메서드를 호출합니다.
이 모든 것과 훨씬 더 많은 것을 FormHelper 에서 즐길 수 있습니다. 및 PrototypeHelper 참조 페이지.
2012-07-13 수정
Prototype
rails
오래 전에 제거되었으며 원격 양식이 완전히 변경되었습니다. 및 :remote
둘 다 의 옵션에 대한 재 보호와 함께 첫 번째 링크를 참조하십시오 .form_for
form_tag
유사해야합니다.
<% form_for @person do |f| %>
<%= f.text_field :name %>
<% end %>
과:
<%= form_tag '/person' do %>
<%= text_field_tag "person[name]" %>
<% end %>
컨트롤러에 동일한 매개 변수를 제출하려면이를 명시 적으로 정의해야합니다.
참고 URL : https://stackoverflow.com/questions/1349348/difference-between-form-for-form-tag
'Program Tip' 카테고리의 다른 글
Swift @escaping 및 완료 처리기 (0) | 2020.10.12 |
---|---|
실패 / 오류시 JSON 서비스가 반환해야하는 사항 (0) | 2020.10.12 |
Gitk 이해 가이드? (0) | 2020.10.12 |
bool이 int의 하위 클래스 인 이유는 무엇입니까? (0) | 2020.10.12 |
wscript와 cscript의 차이점 (0) | 2020.10.12 |