2016-04-18 11 views
2

Ich baue eine einfache Blog-Anwendung mit Rails und ich versuche, die Möglichkeit zu schaffen, einen Kommentar für einen Beitrag zu senden. Allerdings halte ich diesen Fehlerform_for erstes Argument nil Fehler in Rails mit definierten Zuordnungen

Erstes Argument in Form nicht gleich Null enthalten oder

<h3> Submit a Comment </h3> 

<%= form_for [@post, @comment] do |c| %> 
//Error is here, @comment appears to be nil and I'm not sure why 
//(I've checked both cases) 

    <%= c.label :body, "Comment: " %> 
    <br /> 
    <%= c.text_area :body %> 

Ich habe habe die anderen Beiträge, die ein ähnliches Problem hatte, aber nicht finden konnten, ein leer sein Lösung. Jede Hilfe wäre sehr

class CommentsController < ApplicationController 

    def create 
    @post = Post.find params[:post_id] 

    comment_params = params.require(:comment).permit(:body) 

    @comment = Comment.new comment_params 
    @comment.post = @post 
    # Why is my comment nil? 

    if @comment.save 
     redirect_to post_path(@post), notice: "Comment successful" 
    else 
     flash[:alert] = "Comment unsuccessful. Please do not enter an empty comment" 
     render "/posts/show" 
    end 

    end 

    def destroy 
    # To be implemented 
    end 

end 

EDIT geschätzt werden: Gelöst, vergessen @comment = Comment.new in der Show-Methode in meinem Beitrag Controller

Vielen Dank allen hinzuzufügen!

+0

Was Sie wie sieht die Steuerung? – jdgray

+0

hinzugefügt meine Kommentare Controller – JKW

Antwort

3

Sie erstellen einen neuen Kommentar. Sie sollten entweder:

A. @comment = Comment.new irgendwo in Ihrem Controller haben

ODER

B. Instantiate es dann und dort mit

form_for [@post, Comment.new] do |c| #... 
+0

hmm, ich habe das in meinem Controller - es sei denn, ich habe irgendwo einen Syntaxfehler? – JKW

+0

Insbesondere sollte es in der 'show' Methode Ihres Posts-Controllers sein (vorausgesetzt, dass die Option zum Hinzufügen eines Kommentars angeboten wird) – Shelvacu

+0

Ah, das war genau das! Vielen Dank! – JKW

Verwandte Themen