您好我通过使用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
答案 0 :(得分:1)
通过删除解决 来自gemfile的gem'en protected_attributes'。