ruby-on-rails “TypeError:nil既不是符号也不是字符串”对ruby on Rails GET请求的响应

agxfikkp  于 2022-12-01  发布在  Ruby
关注(0)|答案(1)|浏览(160)

帮助!我在Ruby on Rails应用程序(使用PostgreSQL)上执行简单的GET请求时,总是收到此错误:

"status": 500,
    "error": "Internal Server Error",
    "exception": "#<TypeError: nil is not a symbol nor a string>",
    "traces": {
        "Application Trace": [
            {
                "exception_object_id": 26620,
                "id": 54,
                "trace": "app/controllers/recipes_controller.rb:4:in `index'"
            }
        ],

它适用于我的Users GET请求,但不适用于我的Recipes GET请求。以下是关于我的Recipes资源的更多信息:
配方方案:

create_table "recipes", force: :cascade do |t|
    t.string "title"
    t.string "image"
    t.string "link"
    t.string "cuisine"
    t.string "ingredients"
    t.string "date"
    t.boolean "favorite"
    t.boolean "try"
    t.boolean "made"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

配方控制员:

class RecipesController < ApplicationController

  def index
    render json: Recipe.all, status: :ok
  end
end

配方序列化仪:

class RecipeSerializer < ActiveModel::Serializer
  attributes :id, :title, :image, :link, :cuisine, :ingredients, :date, :favorite, :try, :made
end

路线:

Rails.application.routes.draw do
  resources :recipes
  resources :users
end

这很奇怪,因为我已经做了几个类似的项目,使用了几乎相同的后端格式/数据,只是这个特殊的不工作。我仍然是相当新的软件工程,所以任何帮助是感激不尽的。谢谢!
我试着调查这可能是一个布尔问题,但不完全确定。

6tdlim6h

6tdlim6h1#

它可以是名为:try的布尔字段
可以尝试使用更长的名称,例如

is_favorite
wants_to_try / has_tried 
has_made

相关问题