Ruby Rails API - 仅创建数据库对象 returns 具有空值的对象

Ruby on Rails API - Creation of Database Objects only returns objects with empty values

我在 Rails JSON API 上有一个 Ruby,带有用于 JWT 身份验证的 Knock。

用户模型如下所示:

class User < ApplicationRecord

attr_accessor :email, :password, :password_digest
has_secure_password

end

迁移

class CreateUsers < ActiveRecord::Migration[5.1]
    def change
        create_table :users do |t|
            t.string :email
            t.string :password
            t.string :password_digest

            t.timestamps
        end
    end
end

还有一个 User-Controller 和脚手架 CRUD-Methods。为了生成 JWT,我使用了以下继承自 Knock::AuthTokenController:

的控制器
class UserTokenController < Knock::AuthTokenController
end

但是,当我像这样使用控制台生成用户时...

User.create(:email => 'test.test@test.com', :password => 'test', :password_digest => 'test')

...我得到一个空值的数据库对象:

您不需要 attr_accessor,因为您正在使用 ActiveRecord

删除这一行

attr_accessor :email, :password, :password_digest