Heroku и Rails - пропущены параметры при отправке в heroku - PullRequest
0 голосов
/ 26 октября 2018

Задача

У меня есть простая модель, которая требует только поля заголовка. В его контроллере я просто создаю новую модель, используя это поле. Звучит просто, но когда я запускаю его на Heroku и делаю запрос на публикацию с полем заголовка, он не попадает в контроллер. Кажется, это происходит только на Heroku, потому что локально все работает нормально.

Миграция базы данных

class CreateFolders < ActiveRecord::Migration[5.2]
  def change
    create_table :folders do |t|
      t.string :title
      t.belongs_to :user, index: true
      t.timestamps
    end
  end
end

Контроллер

class FoldersController < ApplicationController
  before_action :set_folder, only: [:show, :update, :destroy]

  # GET /folders
  # GET /folders.json
  def index
    @folders = Folder.all
  end

  # GET /folders/1
  # GET /folders/1.json
  def show
  end

  # POST /folders
  # POST /folders.json
  def create
    @folder = Folder.new(folder_params)

    if @folder.save
      render :show, status: :created
    else
      render json: @folder.errors, status: :unprocessable_entity
    end
  end

  # PATCH/PUT /folders/1
  # PATCH/PUT /folders/1.json
  def update
    if @folder.update(folder_params)
      render :show, status: :ok
    else
      render json: @folder.errors, status: :unprocessable_entity
    end
  end

  # DELETE /folders/1
  # DELETE /folders/1.json
  def destroy
    @folder.destroy
  end

  private
    def set_folder
      begin
    @folder = Folder.find(params[:id])
      rescue ActiveRecord::RecordNotFound => e
    render json: {
      error: e.to_s
    }, status: :not_found
      end
    end

    def folder_params
      params.permit(:title).merge(user_id: current_resource_owner.id)
    end
end

JBuilder Show View

json.partial! "folders/folder", folder: @folder

JBuilder _folder View

json.extract! folder, :id, :title, :bookmarks, :created_at, :updated_at

Запрос

{
    "title": "Folder11111"
}

Ответ

{
    "id": 3,
    "title": null,
    "bookmarks": [],
    "created_at": "2018-10-26T11:01:45.779Z",
    "updated_at": "2018-10-26T11:01:45.779Z"
}

Heroku Logs

2018-10-26T11:01:44.992078+00:00 app[web.1]: I, [2018-10-26T11:01:44.991941 #4]  INFO -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25] Processing by FoldersController#create as */*
2018-10-26T11:01:44.992913+00:00 app[web.1]: I, [2018-10-26T11:01:44.992846 #4]  INFO -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Parameters: {"{\n\t\"title\": \"Folder11111\"\n}"=>nil}
2018-10-26T11:01:45.092909+00:00 app[web.1]: D, [2018-10-26T11:01:45.092760 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Doorkeeper::AccessToken Load (1.5ms)  SELECT  "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "dec5088a6683b40c4e1a1a855ec276f583146ac2df5c613f903395bcc46b32a6"], ["LIMIT", 1]]
2018-10-26T11:01:45.437424+00:00 app[web.1]: D, [2018-10-26T11:01:45.437211 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   User Load (6.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
2018-10-26T11:01:45.832660+00:00 heroku[router]: at=info method=POST path="/api/users/folders" host=pando-api-staging.herokuapp.com request_id=00a631b5-33c7-4c5f-8b25-d74fced5fb25 fwd="37.189.130.169" dyno=web.1 connect=1ms service=862ms status=201 bytes=428 protocol=https
2018-10-26T11:01:45.719016+00:00 app[web.1]: D, [2018-10-26T11:01:45.718863 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   CACHE User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
2018-10-26T11:01:45.745984+00:00 app[web.1]: {
2018-10-26T11:01:45.745988+00:00 app[web.1]: "user_id" => 1
2018-10-26T11:01:45.745989+00:00 app[web.1]: }
2018-10-26T11:01:45.756775+00:00 app[web.1]: D, [2018-10-26T11:01:45.756646 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]    (3.0ms)  BEGIN
2018-10-26T11:01:45.768135+00:00 app[web.1]: D, [2018-10-26T11:01:45.768018 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   CACHE User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
2018-10-26T11:01:45.786484+00:00 app[web.1]: D, [2018-10-26T11:01:45.786355 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Folder Create (5.8ms)  INSERT INTO "folders" ("user_id", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"  [["user_id", 1], ["created_at", "2018-10-26 11:01:45.779279"], ["updated_at", "2018-10-26 11:01:45.779279"]]
2018-10-26T11:01:45.791620+00:00 app[web.1]: D, [2018-10-26T11:01:45.791129 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]    (2.0ms)  COMMIT
2018-10-26T11:01:45.809744+00:00 app[web.1]: I, [2018-10-26T11:01:45.809613 #4]  INFO -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Rendering folders/show.json.jbuilder
2018-10-26T11:01:45.819619+00:00 app[web.1]: I, [2018-10-26T11:01:45.818985 #4]  INFO -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Rendered folders/_folder.json.jbuilder (3.5ms)
2018-10-26T11:01:45.830236+00:00 app[web.1]: D, [2018-10-26T11:01:45.830109 #4] DEBUG -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Bookmark Load (0.8ms)  SELECT "bookmarks".* FROM "bookmarks" WHERE "bookmarks"."folder_id" = $1  [["folder_id", 3]]
2018-10-26T11:01:45.831048+00:00 app[web.1]: I, [2018-10-26T11:01:45.830979 #4]  INFO -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25]   Rendered folders/show.json.jbuilder (20.8ms)
2018-10-26T11:01:45.831564+00:00 app[web.1]: I, [2018-10-26T11:01:45.831487 #4]  INFO -- : [00a631b5-33c7-4c5f-8b25-d74fced5fb25] Completed 201 Created in 838ms (Views: 34.6ms | ActiveRecord: 155.7ms)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...