문제

레일즈에서는 폼 헬퍼를 사용하는 것이 권장되나요?내부적으로는 모든 것이 일반 HTML로 귀결됩니다. 그렇다면 HTML을 직접 작성해 보는 것은 어떨까요?도우미를 사용하는 것보다 직접 HTML을 작성하는 것이 분명히 성능이 더 좋습니다.규칙이나 Rails 개발자가 따라야 하는 것과 같은 양식 도우미를 사용하고 있습니까?

도움이 되었습니까?

해결책

성능을 정의합니다. 귀하의 성능 또는 응용 프로그램? 당신의 견해에 걸쳐 동일한 RHTML 스 니펫이 퍼져 있다고 가정 해보십시오. 수천 곳에 있다고 가정 해 봅시다. 어쩌면 당신은 그것을 얻지 못했을 수도 있습니다 바로 그거죠 모든 곳에서도 마찬가지입니다. 이제 고객은이를 변경하려고합니다 (아마도 다른 프레젠테이션 순서 또는 그와 같은 순서). 모든 견해에서 이것을하는 데 시간이 걸릴 것입니다. 그리고 당신이 처음으로 그것을 얻지 못할 것입니다. 실제로 당신은 당신이 놓치는 것을 놓친 곳에서 몇 년 동안 버그 보고서를 계속받을 수 있습니다.

고객은 "성능"을 얻는 것에 대해 많은 비용을 지불하게됩니다. 아마도 수백 시간 일 것입니다. 원칙적으로 건조 원칙을 피하면 수만 명의 사람들 일 수도 있습니다. 대신 근무 시간 동안 그녀가 구입할 수있는 모든 서버와 모든 램을 생각해보십시오. 그녀가 하드웨어에 모든 것을 소비 한 경우 그녀의 응용 프로그램은 100 배 더 빨리 실행될 수 있습니다. HTML 스 니펫을 바꾸는 대신 작업 할 수있는 모든 재미있는 것들을 생각해보십시오.

다른 팁

나는 형태의 조력자가 건조 (자신을 반복하지 말) 원칙을 반영한 것이라고 생각합니다. 비슷한 작업을 수행하기 위해 동일한 코드를 작성하는 대신 해당 코드를 재사용 할 수있는 양식 도우미를 만듭니다. 그렇게하면 변경하거나 수정 해야하는 경우 한 곳에서만 수행하면됩니다. 또한 코드를보다 작고 읽을 수 있도록하는 데 도움이됩니다. 복잡한 행동을 양식 도우미로 추상화합니다. 부분적 견해는 양식 도우미보다 더 복잡한 마크 업을 캡슐화하는 경향이 있지만 부분적 견해도 마찬가지입니다.

양식 도우미는 레일이 모델을 기반으로 양식 생성을 처리하도록 하는 데 특히 유용합니다.API 문서의 예를 인용하려면:

다음 코드

<% form_for :person, @person, :url => { :action => "create" } do |f| %>
  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
  <%= submit_tag 'Create' %>
<% end %>

이 HTML을 생성합니다

<form action="/persons/create" method="post">
  <input id="person_first_name" name="person[first_name]" size="30" type="text" />
  <input id="person_last_name" name="person[last_name]" size="30" type="text" />
  <input name="commit" type="submit" value="Create" />
</form>

HTML을 직접 작성할 수도 있지만 양식 도우미를 사용하면 입력 횟수가 줄어들고 양식 생성이 레일 구현에 덜 의존하게 됩니다.제출 버튼을 누르면 항상 모델에 데이터를 쓰는 양식이 표시됩니다.Rails 개발자가 이 구현을 변경하면 자동으로 도우미로부터 올바른 HTML 출력을 얻게 됩니다.HTML을 수동으로 작성했다면 레일의 내부 작동 변경 사항을 반영하기 위해 HTML을 모두 업데이트해야 합니다.

개발자가 클래스, ID에 동일한 이름을 갖고 다른 이름 ID가 필요하고 값을 제공해야 하는 경우 입력 필드에 값이 없으면 좋을 것 같습니다. <%= text_field_tag ​​" name", :value=>"value", :id=>"id" ,:class=>""class %> 그리고 동일한 HTML에 대해 < 입력 유형 ="텍스트" 값 ="값" 클래스="클래스" 이름 ="이름" id="id"/>이제 머리 위로 생각해보세요 1. 첫 번째 도우미를 HTML로 평가 2. 이제 도우미의 길이도 고려하여 다음과 같이 작성해야 합니다., =>3. 때로는 다음을 사용하는 것을 잊어버릴 때도 있습니다:또는 , 실수로 그래서 우리는 이 경우 HTML을 선호한다고 생각합니다 그리고 한 가지는 서버가 너무 바빠서 <%= %>를 실행해야 하기 때문에 응답 시간이 늘어나는 것보다 많습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top