我怎么能/应该覆盖我的模型的`build`方法?

Bac*_*cko 3 ruby methods overriding ruby-on-rails class

我正在使用Ruby on Rails 3.2.13,因为在我之前的问题"我应该如何使用alias_method_chain构建方法?" 似乎找到了任何解决方案,我正在考虑build在我的模型类中覆盖该方法以获得所需的行为.

我怎么能/应该覆盖build我的模型的build方法(即使方法运行为ActiveRecord关联类似@article.comments.build(...))?

Big*_*ang 7

有一种方法可以自定义构建方法,定义build模型关系:

class Article
    has_many :comments do 
        def build(*args, &block)
            #TODO your code

            super(*args, &block)
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

如果你不需要构建方法的默认参数,那么你可以使用自己的.