我有一个Rails 5.2 API,该API当前可以创建和验证用户(已在Postman中测试)。但是,我添加了另一个名为故事的模型,当我尝试创建新故事时,会创建一个故事,但仅保存id
属性。
这是我的StoriesController:
class StoriesController < ApplicationController
before_action :set_story, only: [:show, :update, :destroy]
# GET /stories
def index
@stories = Story.all
render json: @stories
end
# POST /stories
def create
@story = Story.new(story_params)
if @story.save
render json: @story, status: :created
else
render json: { errors: @story.errors.full_messages },
status: :unprocessable_entity
end
end
# GET /stories/:id
def show
render json: @story
end
# PUT /stories/:id
def update
@story.update(story_params)
head :no_content
end
# DELETE /stories/:id
def destroy
@story.destroy
head :no_content
end
private
def story_params
# whitelist params
params.permit(:title, :category, :summary)
end
def set_story
@story = Story.find(params[:id])
end
end
我认为这是一个参数问题,但事实并非如此。
答案 0 :(得分:0)
老兄,第3行的邮件有效载荷上有一个额外的开口支架 正确的json有效负载是:
{
"story": {
"title": "Spiderman"
"category": "Superhero"
"summary": "new spiderguy ftw"
}
}
我认为您的story_params方法存在问题。故事属性“标题”,“类别”和“摘要”嵌套在“故事”中。
您可以尝试以下方法:
params.require(:story).permit(:title, :category, :summary)