gpt4 book ai didi

ruby-on-rails - 不显示嵌套属性的必填字段的错误消息

转载 作者:行者123 更新时间:2023-12-01 11:27:42 24 4
gpt4 key购买 nike

就我而言,我有一个客户有很多任务(需要 :detail 和 :completion_date 字段。)。
我一直在构建一个嵌套的模型表单,如下所示:

= simple_form_for @client do |f|
= f.simple_fields_for :tasks do |task|
= task.input :detail
= task.input :completion_date
= f.submit

当提交的表单没有空的“详细信息”或“完成日期”字段时,表单会重新呈现,但不会显示任何错误消息。

我一整天都在试图寻找解决方案。没有一个提到嵌套对象的属性验证失败。

希望任何人都可以提供帮助!
谢谢,

最佳答案

默认情况下,Rails 不验证关联的对象。您需要使用 validates_associated macro .

例子:

class Client < ActiveRecord::Base
has_many :tasks
accepts_nested_attributes_for :tasks
# Do not add this on both sides of the association
# as it will cause infinate recursion.
validates_associated :tasks
end

class Task < ActiveRecord::Base
belongs_to :client
validates_presence_of :name
end
@client = Client.create(tasks_attributes: [ name: "" ])
@client.errors.messages
=> {:"tasks.name"=>["can't be blank"], :tasks=>["is invalid"]}

关联记录的错误未在父项中聚合。要显示子记录的错误,您需要遍历它们并调用 errors.full_messages。
@client.tasks.each do |t|
puts t.errors.full_messages.inspect
end

关于ruby-on-rails - 不显示嵌套属性的必填字段的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065810/

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