일부 로직을 FormBuilder로 옮겨 일부 코드를 압축하려고합니다. 선택 양식 및 대체 양식 작성기에 대한 설명서를 읽은 후 저를위한 논리적 솔루션은 이와 비슷한 것으로 보였습니다. 보기ActionView :: Helpers :: FormBuilder를 확장하려고 시도합니다.
<% form_for @event, :builder => TestFormBuilder do |f| %>
<%= f.test %>
<%= f.submit 'Update' %>
<% end %>
에서
다음 응용 프로그램에서
/도우미/application_helper.rbmodule ApplicationHelper
class TestFormBuilder < ActionView::Helpers::FormBuilder
def test
puts 'apa'
end
end
end
이것은, 그러나,
uninitialized constant ActionView::Base::CompiledTemplates::TestFormBuilder
"form_for"에서 나에게 오류를 제공
어디에서 잘못 했습니까?
form_for @event, :builder => ApplicationHelper::TestFormBuilder do |f|
감사합니다. 그게 효과가 있었어. 이 문서가 어딘가에 있습니까? 아니면 레일 구조에서 뭔가를 놓쳤습니까? –
클래스를 정의해야합니다. 따라서 ApplicationHelper에 배치 할 필요가 없습니다. 그래서 당신은 당신의 라이브러리에 클래스를 넣고 네임 스페이스없이 사용할 수 있습니다. – shingara
이것보다 우아한 방법이 있습니까? – JohnMerlino