Rails 5中belongs_to默认不允许nil

来源:互联网 发布:游戏制作软件中文版 编辑:程序博客网 时间:2024/05/16 17:17

Rails 5中默认情况belongs_to为nil不可创建

class User < ApplicationRecordendclass Post < ApplicationRecord  belongs_to :userendpost = Post.create(title: 'Hi')=> <Post id: nil, title: "Hi", user_id: nil>post.errors.full_messages.to_sentence=> "User must exist"

在Rails 4中

class User < ApplicationRecordendclass Post < ApplicationRecord  belongs_to :user, required: trueendpost = Post.create(title: 'Hi')=> <Post id: nil, title: "Hi", user_id: nil, created_at: nil, updated_at: nil>post.errors.full_messages.to_sentence=> "User must exist"

Rails 4默认required: false
如果想在Rails 5中想要允许nil, 需要添加optional: true

class Post < ApplicationRecord  belongs_to :user, optional: trueendpost = Post.create(title: 'Hi')=> <Post id: 2, title: "Hi", user_id: nil>
原创粉丝点击