Rails4 NoMethodError(未定义的方法`[]'对于nil:NilClass):

时间:2014-03-30 04:57:28

标签: json ember.js ruby-on-rails-4 ember-data

您好我通过使用Rails 4获得了以下错误。我的前端(EmberJs)提供了json。

在2014-03-30 00:54:18 -0400开始为127.0.0.1发布“/ articles” 由ArticlesController处理#create为JSON   参数:{“article”=> {“title”=>“Title”,“body”=>“Content”,“author_id”=>“2”,“author”=> nil}} 未经许可的参数:作者 在4782ms完成500

NoMethodError(创建中未定义的方法[]' for nil:NilClass): app/controllers/articles_controller.rb:43:in阻止'   app / controllers / articles_controller.rb:42:在'create'

我的模型看起来像这样:

class Article < ActiveRecord::Base
 validates :title, presence: true
 validates :body, presence: true

 attr_accessible :title, :body, :author_id

 belongs_to :author
end

我的控制器看起来像这样:

class ArticlesController < ApplicationController
    def new
      @article = Article.new
      respond_to do |format|
       format.json { render json: @article }
      end
    end

   def create
    @article = Article.new(article_params)

    respond_to do |format|
      if @article.save
        format.json { render json: @article, status: :created, location: @article }
      else
        format.json { render json: @article, status: :unprocessable_entity }
      end
    end
  end

  private
  def article_params
    params.require(:article).permit(:title, :body, :author_id)
  end
end

1 个答案:

答案 0 :(得分:1)

通过删除解决 来自gemfile的gem'en protected_attributes'。