如何将外键属性用作错误键而不是belongs_to关联名称?

问题描述 投票:0回答:1

我有两个模型:PostComment

class Post
  has_many :comments
end

class Comment
  belongs_to :post
end

[当我尝试创建一个Comment而未分配Post时,出现了如下确认错误:

=> {
    :post => [
        [0] "can't be blank"
    ]
}

我正在编写Rails API,并且有一个名为post_id的客户端表单字段。当API验证返回时,我需要手动将post错误映射到post_id错误以在表单中显示它们。

是否存在将这些belongs_to验证错误映射到外键属性(post_id)而不是我的Rails应用程序中任何post关联的关联(belongs_to)的映射?

我只想要这个对象作为我的错误哈​​希:

=> {
    :post_id => [
        [0] "can't be blank"
    ]
}
ruby-on-rails ruby activerecord rails-api
1个回答
0
投票

您可以在post_id上添加您自己的验证:

validates :post_id, presence: true

这将产生由post_id键控的其他错误。现有错误来自基于关联的自动生成的验证,您可能不应该删除它。当然,您也可以根据自己的喜好过滤/处理错误哈希,但是我猜您正在寻找一种优选的仅使用Rails的解决方案,而无需维护其他逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.