我在'用户'上使用STI表与模型。用户模型有一个枚举性别'价值观[:男性,女性,:其他]。
#app/models/users.rb
class User < ApplicationRecord
enum gender: {male: 0, female: 1, other: 3}
end
#app/models/employee.rb
class Employee < User
end
上次成功注释结果,如果我从User类中删除枚举也可以。
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# email :string(100) default(""), not null
# encrypted_password :string default(""), not null
# reset_password_token :string
# reset_password_sent_at :datetime
# remember_created_at :datetime
# sign_in_count :integer default("0"), not null
# current_sign_in_at :datetime
# last_sign_in_at :datetime
# current_sign_in_ip :inet
# last_sign_in_ip :inet
# created_at :datetime not null
# updated_at :datetime not null
# type :string
# first_name :string(100) default(""), not null
# last_name :string default("")
#
运行注释会抛出以下错误:
无法注释user.rb:您尝试定义名为&#34;性别&#34;的枚举。在模型&#34; User&#34;上,但是这将生成一个实例方法&#34; male?&#34;,它已经由另一个枚举定义。
只有enum中的性别。使用:ruby(2.4.0),rails(5.0.2),annotate(2.6.5)