요즘 한창 재미를 붙이고 있는 ruby & ruby on rails에서 막히는 부분이 생겨 버렸다.
(아직 초반인데...)
rails에서는 helper method라고 해서 html의 tag를 생성해 주는 메서드가 있다.
이중 form tag와 관련된 메서드가 form_for / form_tag이다.
전자는 active record와 관련된 폼(model이 정의되어 있는)을 생성할 때 사용하는 것이고,
후자는 active record와 관련이 없는 폼을 생성할 때 사용하는 것이다(라고 API 문서에는 나와 있는데...).

form_for 메서드에는 인자값으로 form tag에 html 속성을 부여해주는 :html => {}가 있는데, form_tag 메서드에는 이러한 역할을 하는 옵션이 없다!

예를 들어 로그인 처리를 하는 부분에서는, 처리 자체를 Login controller가 하고, Login 클래스의 login 메서드가
입력된 아이디 / 비밀번호를 이용해 사용자 정보를 조회하고, 이를 처리하게끔 구현을 한다고 하자. 그런데, 디자인상 stylesheet가 적용이 되어야 하는데, form_tag 메서드는 html 속성(attribute)을 지정할 수 있는 옵션이 없으므로, 외부로 빼두었던 css 파일 이외에 해당 템플릿 파일(.rhtml)에 form_tag로 생성된 폼을 위해 별도의 style을 지정해 주어야 한다.

rails API 문서도 찾아보고 구글링도 해봤지만, 좀처럼 해답을 찾지 못했다.
구글링에서 나와 비슷한 생각을 하고 있는 외국인의 질문을 보았는데, 거기에 달린 답변이라는게
rails 개발팀에 메일로 문의해봐라.
였다. 젠장...

+ Recent posts