gpt4 book ai didi

ruby-on-rails - Rails 3 去除所有表单上的 before_validation 空格

转载 作者:行者123 更新时间:2023-12-04 14:19:18 30 4
gpt4 key购买 nike

我对 Rails 比较陌生,有点惊讶这不是一种可配置的行为……至少我还没有找到?!?我原以为 99% 的表单会受益于从所有 string 中删除空白。 & text领域?!?猜我错了...

无论如何,我正在寻找一种 DRY 方法来从 Rails 3 应用程序中的表单字段(类型:字符串和:文本)中去除所有空格。

View 具有自动引用(包括?)并可供每个 View 使用的助手......但模型似乎没有这样的东西?!?还是他们?

所以目前我先做以下工作 需要 然后 包括 whitespace_helper(又名 WhitespaceHelper)。但这对我来说似乎仍然不是很干燥,但它有效......

类名.rb:

require 'whitespace_helper'

class ClassName < ActiveRecord::Base
include WhitespaceHelper
before_validation :strip_blanks

...

protected

def strip_blanks
self.attributeA.strip!
self.attributeB.strip!
...
end

库/whitespace_helper.rb:
module WhitespaceHelper
def strip_whitespace
self.attributes.each_pair do |key, value|
self[key] = value.strip if value.respond_to?('strip')
end
end

我想我正在寻找一个单一的(DRY)方法(类?)来放置某个地方( lib/ ?),它将获取参数(或属性)列表并从每个属性中删除空格( .strip! ?)没有被特别命名。

最佳答案

创建一个 before_validation helper 如所见 here

module Trimmer
def trimmed_fields *field_list
before_validation do |model|
field_list.each do |n|
model[n] = model[n].strip if model[n].respond_to?('strip')
end
end
end
end

require 'trimmer'
class ClassName < ActiveRecord::Base
extend Trimmer
trimmed_fields :attributeA, :attributeB
end

关于ruby-on-rails - Rails 3 去除所有表单上的 before_validation 空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4294923/

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