1
헉. 그것은 나를 데려오고있어. 내 컨트롤러에서Rails 뷰 템플릿에서이 불쾌한 쿼리를 제거하려면 어떻게해야합니까?
:
@assessor = Assessor.find(params[:id])
@assessor.answers.build if @assessor.answers.empty?
내보기에서 :
= simple_form_for @assessor do |f|
- @assessor.candidates.each do |candidate|
- @assessor.assessment_competencies.each do |competency|
- if @assessor.answers.all?{|a| a.new_record?}
- competency.behaviors.each do |behavior|
= f.fields_for :answers do |f|
- @assessor.standard_answer_choices.each do |choice|
= f.input :assessor_id, :as => :hidden, :input_html => {:value => @assessor.id}
= f.input :candidate_id, :as => :hidden, :input_html => {:value => candidate.id}
= f.input :behavior_id, :as => :hidden, :input_html => {:value => behavior.id}
= f.input :competency_id, :as => :hidden, :input_html => {:value => competency.id}
= f.association :answer_choice, :collection => [choice], :as => :radio
- else
- competency.behaviors.each do |behavior|
- answer = Answer.find_or_create_by_behavior_id_and_assessor_id_and_candidate_id(behavior.id, @assessor.id, candidate.id)
= f.fields_for :answers, answer do |f|
= f.input :assessor_id, :as => :hidden, :input_html => {:value => @assessor.id}
= f.input :candidate_id, :as => :hidden, :input_html => {:value => candidate.id}
= f.input :behavior_id, :as => :hidden, :input_html => {:value => behavior.id}
= f.input :competency_id, :as => :hidden, :input_html => {:value => competency.id}
= f.association :answer_choice, :collection => [choice], :as => :radio
고마워요, 요르단. 내 예쁘지는 않지만 내 질문의 표현을 단순화하기 위해 부분 코드를 제거했습니다. 나는 부분적인 것 대신 도우미의 사용을 좋아한다! – Blastula