2014-09-30 6 views
1

Form_for 내 뷰에서 ApplicationHelper 내부의 메서드를 사용하고 싶습니다. 이것은 아마 바보 같은 질문이지만 인터넷에서이 작업을 수행하는 방법을 찾지 못했습니다. 여기 내 코드입니다 :응용 프로그램 도우미 메서드를 form_for 내부에서 사용하는 방법

보기/admin_courses/new.html.erb

<%= form_for @course do |f| %> 
    <%= f.label :name, "User name:" %> 
    <%= f.tester("test") %> 
<% end %> 

도우미/application_helper.rb

module ApplicationHelper 
    def tester(name) 
    test = name + "!" 
    test 
    end 
end 

그래서이 작동하지 않습니다. 하지만 내가 할 경우 <%= tester("test") %> 다음 작동합니다. 그러나 나는 f에서이 작업을 수행해야합니다. 어떻게해야합니까? 어떤 도움을 주시면 감사하겠습니다. 나는 뭔가를 이해하지 못하는 것 같아.

+1

"그러나 나는 이것을 f에서해야합니까?" 테스터 방식은 형식의 어떤 것에도 의존하지 않습니다 ... 무엇을 성취하려고합니까? –

+0

정확히 무엇을하려고합니까? "test!"값으로 입력 필드를 자동 완성 하시겠습니까? – JTG

+1

'f'는'Form' 객체의 인스턴스로 간주됩니다. 자체 메서드에 응답하므로 사용자가 직접 만든 임의의 메서드에 응답 할 수 없습니다. – PericlesTheo

답변

1

form_for의 기본값을 덮어 쓰려고하는 경우 value 속성을 설정할 수 있습니다.

<%= form_for @course do |f| %> 
    <%= f.label :name, "User name:" %> 
    <%= f.text_field :name, value: tester('test') %> 
<% end %> 

이 경우 기본값 (이 경우 @course.name)을 덮어 써야합니다.