2017-06-25 10 views
-1

私はRailsで全く新しいです。私はyoutube上のビデオに続いてフォーラムを構築することによってそれを学ぶことを試みています。未定義のメソッド 'save' for nil Rails

しかし、私はエラーに悩まされており、それを解決する方法が全くわかりません。私はゼロのために '保存'」未定義のメソッドを得続ける

コードを:。

コントローラ

class PostsController < ApplicationController 
def index 
end 

def new 
    @post = Post.new 
end 

def create 
    @post = Post.new[post_params] 

    if @post.save 
    flash[:success] = "Saved" 
    redirect_to action: :show 
    else 
    flash[:error] = "There was a problem adding" 
    render action: :new 
    end 
end 

def post_params 
    params[:post].permit(:title, :content) 
end 

new.html.haml

%h1 New post 

= render 'form' 

_form。 html.haml

= simple_form_for @post do |f| 
= f.input :title 
= f.input :content 
= f.submit 

CreatePosts

class CreatePosts < ActiveRecord::Migration[5.1] 
    def change 
    create_table :posts do |t| 
     t.string :title 
     t.text :content 

     t.timestamps 
    end 
    end 
end 

誰もがここで間違っているものを知っていますか?

+3

'@post = Post.new [post_params]'であるべきである '@post = Post.new(post_params)' – Gerry

答えて

2

newメソッドを正しく使用していません(docを参照)。

変更この:

@post = Post.new(post_params) 
+0

と変化:これに

@post = Post.new[post_params] 

強力なパラメタでのタイプミスも同様に^ _ ^ – hainguyen

関連する問題