복붙노트

[RUBY-ON-RAILS] form_for의 차이, 때 form_tag?

RUBY-ON-RAILS

form_for의 차이, 때 form_tag?

form_for와 때 form_tag의 차이점은 무엇입니까? 아무것도 다른이 form_remote_for 및 form_remote_tag에 대한인가?

해결법

  1. ==============================

    1.당신은 특정 모델에 대한 form_for 사용합니다

    당신은 특정 모델에 대한 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 -%>
    
  2. ==============================

    2.form_for는 제 ARG, 액티브 오브젝트로서, 선호; 그것은 쉽게 만들거나 편집 양식 ( "새로운"그것을 사용하는 당신처럼, 컨트롤러의 빈 인스턴스를 생성해야 볼 수 있도록 할 수 있습니다 :

    form_for는 제 ARG, 액티브 오브젝트로서, 선호; 그것은 쉽게 만들거나 편집 양식 ( "새로운"그것을 사용하는 당신처럼, 컨트롤러의 빈 인스턴스를 생성해야 볼 수 있도록 할 수 있습니다 :

    def new
      @foo = Foo.new
    end
    

    그것은 또한 당신이 양식 자체 내에서 모델 이름을 반복 할 필요가 없습니다 그래서, 블록에 양식 변수를 전달합니다. 이 모델 관련 양식을 작성하는 좋은 방법입니다.

    다만 때 form_tag 폼 태그를 생성한다 (물론 자동 form_for 같은 antiforgery 숨겨진 필드를 준비로); 그것은 가장 (I 실제로 단순한 검색 양식을 위해 사용 등)이 아닌 모델 형태의 사용됩니다.

    마찬가지로, form_remote_for 및 form_remote_tag이 모델 관련 서식에 적합하지하는 대신에 표준 HTTP 메소드로 끝나는의 각각 관련 양식을 모델링하지만 (GET은 POST는 ...) 그들은 아약스 메서드를 호출합니다.

    양식 도우미 및 프로토 타입 도우미 참조 페이지에서 즐길 수있는 모든이 훨씬 더 사용할 수 있습니다.

    편집 2012-07-13

    프로토 타입은 오래 전에 레일에서 제거 된, 원격 형태가 완전히 변경되었습니다. form_for와 때 form_tag 모두의 원격 옵션 다음에 reguard으로, 첫 번째 링크를 참조하시기 바랍니다.

  3. ==============================

    3.이들은 유사해야합니다 :

    이들은 유사해야합니다 :

    <% form_for @person do |f| %>
      <%= f.text_field :name %>
    <% end %>
    

    과:

    <%= form_tag '/person' do %>
      <%= text_field_tag "person[name]" %>
    <% end %>
    

    당신이 컨트롤러에 같은 PARAMS을 제출하려는 경우, 당신은 명시 적으로 정의해야합니다.

  4. from https://stackoverflow.com/questions/1349348/difference-between-form-for-form-tag by cc-by-sa and MIT license