2017-11-02 3 views
1

내 트레일 블레이저 셀에서 나는 꽤 역동적 인 폼을 렌더링하고 있습니다.트레일 블레이저 셀의 부분 폼 렌더링

개념/card_form/뷰/_deck_form.erb *

<%= simple_form_for [parent,card] do |f| %> 
    <div class='row'> 
    <div class='col-md-6'> 
     <%= render '_target_sentence', locals: { f: f } %> 
    </div> 

개념/card_form/뷰/_target_sentence.erb

<%= f.input :target_sentence_text, 
     input_html: { class: 'target-sentence', value: card.target_sentence.sentence }, 
     label: "#{target_language} Sentence" %> 
:이 같은 일을하고 싶습니다

_target_sentence 부분에는 꽤 많은 내용이 있지만 여기서 간단하게했습니다. 문제는 내가 F 양식 빌더를 통과 할 수있다

위의 코드는 제공 :

wrong number of arguments (given 2, expected 0..1)

또 다른 변화 :

<%= render '_target_sentence' %> 

undefined local variable or method `f' for #<CardForm::Cell:0x007fc8eb7eaa48>

답변

1

나는 매우, 매우 추천 셀을 사용할 때 partial을 사용하지 않아야합니다.

셀을 사용하는 주된 이유 중 하나는 부분을 사용하지 않는 것입니다. 대신 TartgetSentence라는 셀을 만들고 params를 가져 와서 "부분"보기를 만든 다음 render "_target_sentece" 대신이 셀을 호출하는 것이 좋습니다.

셀은 ViewObject이므로 객체를 객체로 처리해야합니다. 필요에 따라 한 번 정의한 다음 마스터 객체 셀과 뷰 객체에서 해당 뷰를 생성 한 다음 필요할 때 호출합니다. 부분적으로 부분적인 것보다 빠르다는 것이 부분적으로 이유입니다.

P.S. .: Trailblazer의 공식 Gitter 채널에 오셔서 더 빨리 도움을 받으실 수 있습니다. https://gitter.im/trailblazer/chat

+0

고맙습니다. @konung 나는 거터에 게시했습니다. 필자는 필드가 나타나는 조건부 논리를 사용하여 복잡한 형식을 분해하는 방법을 원했습니다. 그러나 양식 작성자를 지나칠 수는 없습니다. 나는 Rails 부분으로 돌아가는 것을 끝내었다. 해결책이 있다면 나는 그것을 듣고 싶어 할 것입니다. 건배 – ardochhigh