【发布时间】:2020-11-27 20:39:21
【问题描述】:
我正在将 Rail 5.2 应用程序升级到 Rails 6,但我的一个多态模型遇到了错误。它可以属于_其他几个模型,但它本身只需要一个主体。
class Note < ApplicationRecord
belongs_to :notable, polymorphic: true
belongs_to :user
belongs_to :profession
belongs_to :topic
has_many :notes, as: :notable, :dependent => :destroy
validates :body, presence: true, allow_blank: false
end
当我创建或编辑笔记时,即使它的正文、用户和显着设置正确,验证也会失败,因为它说职业和主题不能为空。
=> #<:errors:0x00005622cd43ed10 id: notable_type: notable_id: user_id: body: created_at:>,@messages={:topic=>["必须存在"], :profession=>["必须存在"]}, @details={:topic=>[{:error=>:blank}], :profession=>[{:error=>:blank}]}>
如果我在上面的模型中注释掉belongs_to,它验证正常。
我搜索了文档以查看是否可以在任何地方解释该行为,但验证或升级指南中似乎没有任何内容涉及多态关联的问题。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-6