ruby-on-rails - 我如何/应该为我的模型覆盖 `build` 方法?

标签 ruby-on-rails ruby class methods overriding

我正在使用 Ruby on Rails 3.2.13,因为在我之前的问题 "How should I use the alias_method_chain for the build method?" 中似乎已经找到任何解决方案,我正在考虑覆盖我的模型类中的 build 方法以获得所需的行为。

我如何/应该如何为我的模型重写 build 方法(即使 build 方法针对 ActiveRecord 关联运行,就像@article.comments.build(...))?

最佳答案

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

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

            super(*args, &block)
        end
    end
end

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

关于ruby-on-rails - 我如何/应该为我的模型覆盖 `build` 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18172295/

相关文章:

ruby - DelegateClass 和类似方法存在于哪个对象/类上?

ruby-on-rails - 在应用程序中使用 rails 引擎部分

ruby-on-rails - 两个 bool 字段。单一输入字段。 ruby on Rails

ruby-on-rails - 在 Rails 上获取模型或 404

c++ - 如何将 WndProc 用作类函数

c# - 如何创建嵌套类

c++ - 在类内的结构中定义枚举

ruby-on-rails - Ruby 和 CSS 代码

ruby-on-rails - Rails 多态关系和 link_to

sql - 查找具有多个 ActiveRecord HABTM 关联的记录