Модель Rails 5 Api не сохраняет поля - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть API rails 5.2, который в настоящее время создает и аутентифицирует пользователей (протестировано в Postman).Однако я добавил еще одну модель под названием «Истории», и при попытке создать новую «Историю» создается история, но сохраняется только атрибут id.

Вот мой контроллер Stories:

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

Вот запрос в Почтальоне:

Вот вывод в Почтальоне: enter image description here

Я думал, что этобыла проблема с params, но, похоже, это не так.

1 Ответ

0 голосов
/ 17 декабря 2018

человек имеет дополнительную открывающую скобку в вашей полезной нагрузке поста в строке 3. Правильная полезная нагрузка json:.

{
  "story": {
    "title": "Spiderman"
    "category": "Superhero"
    "summary": "new spiderguy ftw"
  }
}

Я думаю, что есть проблема с вашим методом story_params.Атрибуты Story "tittle", "category" и "summary" вложены в "story".

Вы можете попробовать это:

params.require(:story).permit(:title, :category, :summary)
...