2017-02-15 7 views
0

私は現在私のフォームに問題が発生しています。私は私のform_forに問題があります

First argument in form cannot contain nil or be empty 

私のコメント/新しい部分は_new.html.erbです。私がやろうとしている何

<% form_for @comment do |f| %> 
<%= f.label :body %> 
<%= f.text_field :body, placeholder: "Write Message here.." %> 
<% end %> 

文書#表示ページにコメントを追加レンダリングです:これがファイルです。

マイコード:私の部分に必要な追加のコードがある場合は

コメントコントローラ

class CommentsController < ApplicationController 

before_action :find_comment, only: [:show, :edit, :update, :destroy] 

def index 
    @comments = Comment.all 
end 

def new 
    @comment = Comment.new 
end 

def create 
    @comment = current_user.comments.build(comment_params) 
    if @comment.save 
    redirect_to :back 
    else 
    redirect_to '/' 
    end 
end 

def show 
end 

def edit 
end 

def update 
    if @comment.update(comment_params) 
    redirect_to '/' 
    else 
    redirect_to :back 
    end 
end 

def destroy 
    @comment.destroy 
    redirect_to "/" 
end 

private 

def find_comment 
    @comment = Comment.find(params[:id]) 
end 

def comment_params 
    params.require(:comment).permit(:body) 
end 
end 

記事#は

<%= render '/comments/new' %> 

を表示します。質問してください、私は追加のファイルで質問を編集/更新します。

すべてのヘルプ/説明をいただければ幸いです。前もって感謝します。

+0

を追加します。私は2番目の部分を削除します。アドバイスありがとうございます。 –

+0

チュートリアルに従っていますか? – Hizqeel

+0

@Hizqeel現在のところありません。しばらくのうちにRailsに触れておらず、私が覚えていることから基本的なブログをやりたいと思っていました。多分私はチュートリアルをもう一度見ているかもしれません。 –

答えて

0

最初の質問:

私は理解条#ショーに

def show 
    @comment = Comment.new 
end 
+0

ありがとうございます。これは、記事の表示ページに現在表示されているフォームを持っています。あなたに私が助けてくれることを願っています。私がフォームを送信しようとすると、私はコンソールでロールバックを取得します。なぜそれが事実であるか知っているかもしれませんか?私はそれが欠落していることに気付いたので、私のコントローラにcomment_paramsを追加します。 –

+0

@StevenOssorioログには何が表示されますか? – Ruslan

+0

@RusianはPOSTを開始しました。 "/ comments"は127.0.0.1で2017-02-15です。16:42:28 -0500 CommentsController#によって処理されます。 パラメータ:{"utf8" => "✓"、 "authenticity_token" "コメント" => "ボディ" => "ヨウ"} "コミット" => "コメントを作成"} ユーザ負荷(0.1ms)SELECT " * "FROM" users "WHERE" users "。" id "=?リミット? [["id"、11]、["LIMIT"、1]] (0.0ms)begin transaction (0。0ms)ロールバックトランザクション http:// localhost:3000/ にリダイレクトされました302 3msで見つかりました(ActiveRecord:0.2ms) –

関連する問題