gpt4 book ai didi

ruby-on-rails - 验证失败,字段必须与 allow_nil 一起存在

转载 作者:行者123 更新时间:2023-12-04 11:44:22 25 4
gpt4 key购买 nike

我正在创建一个博客,其中的文章可以是对其他文章的回复。文章也可以是组的一部分。然而,文章不必在一个组中,也不必是对另一篇文章的回应。

我正在尝试按照 Rails 文档创建文章 self-joined records .

我创建了用户、组和文章脚手架:

bin/rails g scaffold user username:string email:string birthday:date

bin/rails g scaffold group name:string user:references

bin/rails g scaffold article user:references parent:references title:string subheading:string body:text pub_date:datetime group:references hidden:boolean prompt:boolean

我正在尝试在模型验证中使用 allow_nil

class Article < ApplicationRecord
belongs_to :user
belongs_to :parent, class_name: "Article"
has_many :replies, class_name: "Article", foreign_key: "parent_id"
belongs_to :group

validates :parent, length: {minimum: 1}, allow_nil: true
validates :group, length: {minimum: 1}, allow_nil: true
end

但是当我运行 db:seed 时:

user1 = User.create(username: "pete01",email: "pete01@gmail.com",
birthday:"1980-01-30")

article1 = Article.create!(user:user1, parent:nil, title:"My First Article",
subheading:"This is important", body:"The body of my first article",
pub_date:"2015-12-26", group:nil, hidden:false, prompt:false)

我收到这个错误:

ActiveRecord::RecordInvalid: Validation failed: Parent must exist, Group must exist

是否还有其他地方我应该告诉 Rails 它不需要验证组和父级?

最佳答案

解决办法是找到文件new_framework_defaults.rb,把它改成false:

Rails.application.config.active_record.belongs_to_required_by_default = false

关于ruby-on-rails - 验证失败,字段必须与 allow_nil 一起存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34474580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com