gpt4 book ai didi

ruby-on-rails - Rails 自定义电子邮件验证器 |黑名单

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:00 25 4
gpt4 key购买 nike

情况:

我有一个用户 模型,它需要通过列入黑名单的电子邮件地址列表进行验证。列入黑名单的电子邮件地址位于名为黑名单

的额外模型中

模型/用户.rb:

    class User < ActiveRecord::Base
validate :email_is_not_blacklisted

def email_is_not_blacklisted
@blacklist = Blacklist.where(:blacklist_type => "E-Mail")

@blacklist.each do |item|
errors.add(:email, 'is blacklisted') if self.email.match(item)
end
end
end

模型/黑名单.rb

    class Blacklist < ActiveRecord::Base
attr_accessible :name, :blacklist_type

#some validation code for blacklist items ...
end

黑名单条目示例

    #:        name,            blacklist_type
#1: 'demo-mail.com', 'E-Mail'
#2: 'test123.com', 'E-Mail'

future 还将使用黑名单模型来禁止特定用户名!

问题:

我的问题是[at]blacklist 总是nil。也许我的逻辑有问题?换句话说:是否可以在没有关联的情况下访问另一个模型中的模型?

提前感谢您的帮助,对于现有的语言错误深表歉意。我不是以英语为母语的人:)

解决方案!我错过了定义项目的哪个属性应该被使用...

    errors.add(:email, 'is blacklisted') if self.email.match(item.name)

有时我的大脑不喜欢我喜欢的方式......

最佳答案

我会建议你使用这个

class User < ActiveRecord::Base
validate :email_is_not_blacklisted

def email_is_not_blacklisted
if Blacklist.find_by_blacklist_type_and_name("E-Mail",self.email)
errors.add(:email, 'is blacklsited')
end
end
end

这会比以前的更快

关于ruby-on-rails - Rails 自定义电子邮件验证器 |黑名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638999/

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