gpt4 book ai didi

ruby-on-rails - Rails 部分表验证

转载 作者:行者123 更新时间:2023-12-03 15:35:21 25 4
gpt4 key购买 nike

我有一个我正在尝试创建的表单,它被分成几个部分。每个部分都将一些信息保存到该表中,然后转到下一页。我试图找出验证模型中每个部分的数据的最佳方法。我打算使用 validates_presence_of 之类的东西,但是希望所有正在验证的数据在保存后都可用......在我的例子中,整个表格在完成每个部分之前不会被填写。

如果有办法,最好的方法是什么?

最佳答案

您可以使用 :if:unless 选项进行有条件的验证。如果您在表中添加“步骤”列,您可以使用它来验证模型。

class Item < ActiveRecord::Base
validates_presence_of :name # step 1
validates_presence_of :category_id, :if => Proc.new { |i| i.step >= 2 } # step 2
validates_presence_of :description, :if => Proc.new { |i| i.step >= 3 } # step 3
end

然后,您可以在 Controller 中每次增加步数。

def update
@item = Item.find(params[:id])
@item.step += 1
if @item.update_attributes(params[:item])
# ...
end
end

您可能还想考虑使用 state machine .

关于ruby-on-rails - Rails 部分表验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1242617/

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