找出必填字段以创建对象 rails 控制台

Figure out compulsory field to create object rails console

我想知道是否有一个命令会告诉您需要填写哪些字段才能创建对象>

示例:

我有一个User(name, password, email, zip code)table, 通过以下验证:

validates :name, :password, :email, presence: true

为了使用:User.create,我必须给它一个名称、密码和电子邮件才能成功。

因为我有一些 table 超过 20 个字段,我不想每次创建对象时都检查验证,是否有命令(用于 rails控制台),其中列出了所有需要出现的字段?

您可以将 validators method 用于 'PresenceValidator'。

使用这样的模型:

class Commentary < ActiveRecord::Base
  belongs_to :user
  belongs_to :match

  validates_presence_of :content, :match_id
end

当你这样做时:

 Commentary.validators
    .select { |validation| validation.to_s.include?('PresenceValidator') }
    .map{|validation| validation.attributes }
    .flatten

你得到:

[:content, :match_id]

这些是您在创建 ActiveModel 时必须提供的必填字段。