gpt4 book ai didi

ruby-on-rails - 如何在全局范围内修剪 rails 模型中的输入

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

在我的 Rails 应用程序中,有几个模型可供用户将数据发布到数据库。很多这些数据都有尾随和前导空格。有没有办法可以全局删除所有输入的前导和尾随空格?

我想避免对每个模型中的每个字段都这样做,似乎在 before_save 期间可能有一种全局方式来处理此问题。 .

有什么用过的技术吗?

谢谢

最佳答案

多一颗 gem 来完成这项工作:https://github.com/holli/auto_strip_attributes

此外,在某些情况下,您希望压缩用户输入的数据以去除变量内的多个空格。例如。带有姓名或昵称。

gem "auto_strip_attributes", "~> 1.0"

class User < ActiveRecord::Base
auto_strip_attributes :name, :nick, :nullify => false, :squish => true
end

通过使用 before_save 回调,所有 gems 和其他方法的工作方式都有些相同。 (代码示例在 Jeremys 示例中。)因此自定义 setter 可能存在一些问题。你可以选择这样做
attributes.each do before_validation do ...
record.send("#{attr_name}=", record.send(attr_name).to_s.strip)

或与
attributes.each do before_validation do ...
record[attribute] = record.send(attr_name).to_s.strip)

第一种方法将调用 setter 两次(一次在设置时,一次在 before_validation 中)。第二个只会调用 setter 一次,但会在调用 setter 后更改数据。

关于ruby-on-rails - 如何在全局范围内修剪 rails 模型中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037065/

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