gpt4 book ai didi

ruby-on-rails - Gem:将我自己的模块包含到 ActiveModel::Validations 中

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

我正在尝试编写我的第一个 gem,它对信用卡字段进行验证。我创建了一个模块 MyCcValidation 和以下工作:

class User < ActiveRecord::Base
include MyCcValidation
my_validation_helper { some_data }
end

我希望实现的是能够将 gem 添加到我的 Gemfile 并让 my_validation_helper “开箱即用”。我尝试了很多扩展 ActiveModel::Validations 的方法,但到目前为止还没有成功。这是我的第一颗 gem ,所以我可能遗漏了一些东西,例如devise 似乎没有问题。应该怎么做?

最佳答案

直接扩展 ActiveModel::Validations 听起来不是个好主意。尝试定义自定义验证器类,然后重新打开 ActiveModel::Validations::HelperMethods 模块并在其中添加 your_validation_helper

例子:

class MyCustomValidator < ActiveModel::Validator
def validate(record)
# ...
end
end

module ActiveModel::Validations
module HelperMethods
def validates_my_custom_stuff(*attr_names)
validates_with MyCustomValidator, attr_names
end
end
end

在内部,ActiveModel::Validations 扩展了 HelperMethods,因此您的验证辅助方法应该适用于所有模型。

关于ruby-on-rails - Gem:将我自己的模块包含到 ActiveModel::Validations 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30123945/

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