gpt4 book ai didi

ruby-on-rails - 仅当输入与动态数组中的字符串匹配时才进行 Rails 验证

转载 作者:行者123 更新时间:2023-12-02 04:07:06 25 4
gpt4 key购买 nike

我有一个接受 Bill 模型输入的表单。该表单具有自动完成功能,可以为您提供在交易模型中创建的动态数组中的单词。我想做一个验证,只允许数组中的单词作为输入。我找到了验证 validates_inclusion_of 但我不确定这是否是正确的验证以及如何链接模型中的验证以检查为自动完成创建的数组。

我的事务 Controller 中的路由是 autocomplete_names

如何根据交易 Controller 中的路由进行验证检查输入。

这是我迄今为止进行的验证,还是我在错误的上下文中使用了它并且需要进行自定义验证?

validates_inclusion_of :my_bill, in: [Transaction::autocomplete_names], :allow_blank => true, message: "Bill name not found in your account, please try again"

这是错误的并且不起作用,所以我需要弄清楚在“:in”中放置什么来进行此验证

最佳答案

更新答案

您可以在事务模型中编写以下内容:

def self.autocompete_names
Transaction.all.pluck(:trans_name)
end

然后在您的 Bill 模型中,您可以使用以下验证:

validates :my_bill, inclusion: { in:          Transaction.autocomplete_names,
allow_blank: true,
message: "Bill name not found in your account, please try again" }

由于您使用的是 Rails 4,我相信上述验证结构是最新的。

关于ruby-on-rails - 仅当输入与动态数组中的字符串匹配时才进行 Rails 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967009/

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