gpt4 book ai didi

ruby-on-rails - Rails : Has_many through, 嵌套复选框,并验证 presence_of

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:40 25 4
gpt4 key购买 nike

我确定这是一个常见问题,但它让我感到难过。

我有一个 has_many :through 表在“步进”模型上:

has_many :questions, :through => :question_step

question_step 模型在 question_id 和 step_id 字段上有存在验证器:

validates_presence_of :question_id, :step_id

并且有复选框确定哪些问题属于哪个步骤

td= check_box_tag "step[question_ids][]", question.id, @step.question_ids.include?(question.id)

现在,这工作得很好,除非我想向步骤添加问题。因为 step_id 为空,所以 question_step 模型验证失败。如果我删除 question_step 模型中的 validate_presence_of :step_id 参数,它会正常工作,但实际上我确实想确保 step_id 在那里。

我确定这是一个常见问题。 ...有什么想法吗?

最佳答案

您可以检查是否存在问题和步骤对象,而不是验证步骤和问题 ID 是否存在:

validates_presence_of :question, :step

如果这不起作用,您应该考虑删除应用程序级别的验证并改为添加数据库约束,您只需要向迁移中的列添加非空约束:

def up
change_column question_steps, :question_id, :integer, :null => false
change_column question_steps, :step_id, :integer, :null => false
end

关于ruby-on-rails - Rails : Has_many through, 嵌套复选框,并验证 presence_of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266490/

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