这里是新手,试图向 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
如果您想了解nil
和blank
之间的区别,请参阅此 SO 发布。
引用这些 Guides 为 allow_blank
关于ruby-on-rails - allow_nil : false does not work from rails console,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848289/