ruby-on-rails - allow_nil : false does not work from rails console

标签 ruby-on-rails activerecord

这里是新手,试图向 ruby​​ on rails 表单添加一些规则,特别是我不想允许创建没有名称的项目

class Idea < ActiveRecord::Base
mount_uploader :picture, PictureUploader
belongs_to :project
validates :name, presence: true, allow_nil: false
end

如果我从我的应用程序创建一个新项目,则工作顺利,但如果我从 Rails 控制台创建一个项目,则不会发生同样的情况。如何避免创建没有名称的项目,无论它是在应用程序中还是在 Rails 控制台中创建的?

最佳答案

问题是您必须设置 allow_blank: false 而不是 allow_nil: false

在 Ruby 中,空字符串 not nil

"".nil?
#=> false

"".blank?
#=> true

像这样更新你的模型

class Idea < ActiveRecord::Base
  mount_uploader :picture, PictureUploader
  belongs_to :project
  validates :name, presence: true, allow_blank: false
end

如果您想了解nilblank 之间的区别,请参阅此 SO 发布。

引用这些 Guides allow_blank

关于ruby-on-rails - allow_nil : false does not work from rails console,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848289/

相关文章:

javascript - 这会导致 Rails 检测到 CSRF 吗?

ruby-on-rails - 使用 rail 上传文件 - 什么是最好的方法

ruby-on-rails - 如何将属性添加到 Nokogiri 节点?

ruby-on-rails - 检查具有特定参数的重新请求作业是否在队列中挂起

sql - Rails 按 :created_at, 返回 :status column, 的计数对表进行分组,然后使用每个唯一值的计数对 :status 列进行子分组

ruby-on-rails - 获取每组最新的n条记录

ruby-on-rails - karma + rails : File structure?

ruby-on-rails - 在 rails 中使用 ActiveRecord 从数据库返回每第 n 行

ruby-on-rails - Rails 模型的 XML 映射和验证

ruby-on-rails - ActiveRecord:获取在特定日期没有创建 child 的 parent 的范围