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
我在 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