2012-07-29 4 views
0

내 호기심에 대한 (단순한) 질문이 있습니다. 레일스가 게시 된 값으로 양식을 채우는 방법을 알고 싶습니다. 일부 모델의 속성에 대한 유효성 검사 오류가있을 때 뭔가 할 수 있습니다. "render : edit"와 같이 양식은 마술처럼 미리 채워집니다.Rails가 양식을 미리 채우는 방법은 무엇입니까?

레일즈가 그런 일을하기 위해 사용하는 메커니즘은 정확히 무엇입니까? 이 주제에 관한 문서를 찾을 수 없었기 때문에 나는 그 마법을 이해하고 싶습니다.

누군가이 주제에 대해 설명해 줄 수 있다면 기쁜 마음으로 읽을 것입니다.

감사합니다.

[편집] 부차적 인 질문 : 모델이 다른 모델 (STI)에서 상속받을 때 폼을 미리 채우기 위해 뭔가해야합니까?

답변

1

당신은 대부분이 스타일의 form_for 도우미를 사용 :

이 불가결 한이 무엇
<%= form_for @person do |f| %> 
    <!-- Some more stuff here --> 

    <%= f.text_field :first_name %><br /> 

    <!-- Some more stuff here --> 
<% end %> 

, 그것은 @person.first_name.to_s의 값으로 채워지는 텍스트 필드를 생성합니다. 오류가 발생하면 @person.first_name은 오류 값으로 채워집니다. 사람 (@person = Person.new)을 만들면 @person.first_name.to_s""입니다.

레일은 텍스트 필드를 값으로 채우기 만하므로 속성에 있습니다.

f 레일은 FormBuilder입니다. 소스를 면밀히 살펴보고 싶다면 메소드는 here에 문서화되어 있습니다.

+0

감사합니다. 그래서 내가 올바르게 소스를 이해한다면,이 메소드는 "submit_default_value"가 폼을 미리 채우는 것입니다. 맞습니까? 그리고 단일 테이블 상속은 어떨까요? 특히 Rails가 하위 모델 제출 실패 후 양식을 채우기 위해 수행해야 할 작업이 있습니까? – Kulgar