2017-12-26 5 views
0

안녕하세요 저는 Forms/Questions/Answers를 이미 개발 한 응용 프로그램과 같은 GoogleForm을 개발해야하며 이제는 양식을 '답변 가능'하게 만들어야합니다. 모델 설문 조사 (설문지 has_many 설문 조사 및 설문 조사는 양식에 속함). 나는이 실수를 가지고 https://projet.../formulaires/131/polls/new과 나는 그것을 처리하는 방법을 이해하지 않습니다.NoMethodError in polls # new - 정의되지 않은 메소드 'polls'for nil : NilClass

내 routes.rb는 :

resources :formulaires do 
    resources :polls 
    end 

내 polls_controller :

def index 
    @polls = @formulaire.polls.order("created_at DESC") 
end 

def show 
end 

def new 
    @poll = Poll.new 

end 

def create 
    @poll = @formulaire.poll.new(poll_params) 
    @polls = @formulaire.polls.order("created_at DESC") 

    if @poll.save 
     redirect_to formulaire_polls_path(@formulaire) 
    end 
end 

def poll_params 
    params.require(:poll).permit(:formulaire_id, :question_id, :answer_id, :nom) 
end 

end 

그리고 내 여론 조사/_form보기를 테스트 :

<%= form_for([@formulaire, @formulaire.polls.new]) do |f| %> 

<h2> Test</h2> 
    <%= f.label :nom %> 
    <%= f.submit %> 
<% end %> 

답변

0
@polls = @formulaire.polls.order("created_at DESC") 

당신이 어디를 정의 않았다 @formulaire? 당신이해야 할

...

@formulaire = Formulaire.find(params[:formulaire_id] 
@polls = @formulaire.polls.order("created_at DESC") 

당신은 당신의 create 방법 같은 라인이 필요합니다. 사실, 모든 CRUD 메소드보다 먼저 호출하는 before_action에 @formulaire을 할당하는 것이 좋습니다.

+0

감사합니다. @SteveTurczyn 제 '새로운'방법으로 추가했습니다. – user9007028

관련 문제