【问题标题】:ActiveModel::UnknownAttributeError: unknown attribute 'status' for RecordingActiveModel::UnknownAttributeError: 录制的未知属性“状态”
【发布时间】:2017-05-15 17:08:09
【问题描述】:

当我在 cmd "rake db:seed" 中写入时,出现此错误:

rake 中止!

ActiveModel::UnknownAttributeError: 录制的未知属性“状态”。 G:/program/Rails/weather/db/seeds.rb:2:in `' 任务:TOP => db:seed (通过使用 --trace 运行任务查看完整跟踪)

这是我的“seeds.rb”代码

`l = Location.create(name: "New York City")
 l.recordings.create(temp: 32, status: "cloudy")
 l.recordings.create(temp: 34, status: "rainy")
 l.recordings.create(temp: 30, status: "rainy")
 l.recordings.create(temp: 28, status: "cloudy")
 l.recordings.create(temp: 22, status: "sunny")`

【问题讨论】:

  • 您可能缺少属性或关系。向我们展示您的 RecordingLocation 模型和迁移。
  • 远射,但您是否使用枚举来表示可能的状态值?

标签: ruby-on-rails rails-api


【解决方案1】:

您收到 UnknownAttributeError 是因为您的 Recordings 表中没有列。您是否已生成状态列?如果没有,你可以做rails generate migration AddStatusToPRecordings status:string。然后做一个rake db:migrate

【讨论】:

    【解决方案2】:

    您在迁移Recording 模型时缺少status 属性。

    从终端执行以下步骤:

    # add `status` column in `recordings` table
    rails generate migration AddStatusToRecording status:string
    rake db:migrate
    
    # seed the data into the db
    rake db:seed
    

    希望它会有所帮助。

    【讨论】:

      【解决方案3】:

      如果我们错过了要插入数据库并在代码中使用的字段,就会出现问题。这是显示此问题的唯一条件。

      创建迁移脚本

      bin/rails generate migration addStatusToReceiptItems
      
      class AddStatusToReceiptItems < ActiveRecord::Migration
        def change
          add_column :receipt_items, :status, :boolean
        end
      end
      

      然后运行命令

      rake db:migrate
      

      【讨论】:

        猜你喜欢
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多