【问题标题】:Figure out compulsory field to create object rails console找出创建对象导轨控制台的必填字段
【发布时间】:2015-07-06 01:15:38
【问题描述】:

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

例子:

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

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

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

由于我有一些包含 20 多个字段的表,并且我不想在每次创建对象时都检查验证,因此是否有一个命令(在 rails 控制台上使用)列出了所有需要的字段在场吗?

【问题讨论】:

  • 我猜什么都没有,但如果任何特定字段未验证,则在对象上调用 .save! 会引发验证错误。

标签: ruby-on-rails rails-console


【解决方案1】:

您可以将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 时必须提供的字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多