Superform 0.6.x는 Ruby on Rails 개발 환경에서 폼을 다루는 방식을 혁신하는 여러 주요 기능을 포함합니다.
Field Kits를 통한 렌더링 간소화
기존 Superform 렌더링 방식은 render
메서드 호출이 반복되어 코드가 장황해지는 경향이 있었습니다. Field Kits의 도입으로 이러한 불필요한 render
호출이 제거되어 코드가 훨씬 간결해졌습니다.
- Phlex 환경:
render it.Field(:name).input
대신it.Field(:name).input
와 같이 필드를 암시적으로 렌더링할 수 있습니다. - ERB 환경:
<%= render MyForm.new @user do ... end %>
블록 내에서<% %
태그 없이it.Field(:name).input
와 같이 직접 필드를 정의할 수 있어, Rails에서 가장 간결한 폼 빌더로 자리매김했습니다.
Phlex 2.0 호환성 및 구조 개선
Phlex Rails 2.0의 권장 컨벤션을 따르도록 Superform의 구조가 변경되었습니다.
- 폼 위치: 폼 클래스는 이제
app/views
디렉토리에 위치합니다. - 기반 폼 컴포넌트: 기본 폼은
app/components/form.rb
에 위치한 컴포넌트로 정의됩니다. - 기존 0.5.x 사용자들을 위한 업그레이드 가이드가 GitHub에 제공됩니다.
HTML5 전용 입력 메서드 추가
이전에는 input(type: :email)
과 같이 HTML5 입력 타입을 명시적으로 지정해야 했지만, 이제는 전용 메서드를 통해 더욱 간결하게 폼 필드를 정의할 수 있습니다.
- 개선된 방식:
it.Field(:email).email(class: "form-control")
과 같이 직관적인 메서드를 사용하여 코드의 가독성과 작성 편의성을 높였습니다.
강력한 파라미터(Strong Parameters) 공식 지원
Superform::Rails::StrongParameters
모듈이 공식적으로 도입되어, 컨트롤러에서 강력한 파라미터 처리를 더욱 효율적으로 수행할 수 있게 되었습니다.
- 컨트롤러 통합:
include Superform::Rails::StrongParameters
를 통해save
메서드를 사용할 수 있습니다. 이 메서드는 폼 클래스에 정의된 필드를 기반으로 속성을 할당하므로, 컨트롤러에서 별도로 허용된 파라미터 목록을 관리할 필요가 없어집니다. - 폼 정의: 폼은
app/views/posts/form.rb
와 같이 뷰 디렉토리에 위치하며,Field(:title).text
,Field(:body).textarea
등으로 필드를 정의합니다. - 생성(create) 및 편집(edit) 뷰에서
render Form::User.new @user
와 같이 간결하게 폼을 렌더링할 수 있습니다.