2017-12-26 22 views
0

Hallo Ich habe eine GoogleForm ähnliche Anwendung entwickelt ich bereits entwickelt Forms/Questions/Answers und jetzt muss ich meine Formulare" beantwortbar ", so dass ich erstellt ein Modell Poll (ein Formular hat viele Umfragen und eine Umfrage gehört zu einem Formular). Ich habe diesen Fehler https://projet.../formulaires/131/polls/new und ich verstehe nicht, wie man damit umgeht.NoMethodError in Umfragen # neu - undefined Methode `Umfragen 'für Nil: NilClass

Mein routes.rb:

resources :formulaires do 
    resources :polls 
    end 

Mein 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 

Und meine Umfragen/_form Ansicht, es zu testen:

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

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

Antwort

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

Wo haben Sie definieren @formulaire?

Sie tun müssen, um ...

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

Sie müssen die gleiche Zeile in create Methode haben. In der Tat kann es sinnvoll sein, @formulaire in einer before_action zuzuweisen, die Sie vor allen CRUD-Methoden aufrufen.

+0

Vielen Dank @SteveTurczyn ich habe es in meiner "neuen" Methode hinzugefügt – user9007028

Verwandte Themen