Rails 3 build_association



我正试图创建一些类似于如何在Rails中实现基本防御垃圾邮件保护的内容,但我遇到了一个问题。在文章中,他们有这样的东西:

def self.init(attributes)
    self.new(clean!(attributes))
end
private
def self.clean!(attrs)
    returning({}) do |cleansed_attributes|
        attrs.each do |key, value|
            cleansed_attributes.merge!(key.to_s.underscore => value)
        end
    end
end

然后他们呼叫DefensioResponse.init。然而,在我的情况下,我的设置有点不同。我正在调用comment.build_defensio()(我的模型被称为Defensio而不是DefensioResponse),并且似乎从未调用过self.init。我应该如何更改上面的代码块,使其与comment.build_defensio()一起工作?

有关更多信息

如果你需要查看我在Github上托管的任何源代码。

基本上,我正在做的是提交一个评论(Skatepark::comment),在成功保存DefensioJob之后,它将与Delayed::Job.enqueue(DefensioJob.new(self.id))一起排队。在防御工作的内部,我正试图创建并保存一个新的Skatepark::Comment::Defensio记录。

您可以覆盖模型的初始值设定项,比如这个

def initialize(attributes = {})
  super(clean!(attributes))
end

相关内容

  • 没有找到相关文章

最新更新