- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新
我错误地检查了edgerails指南,而不是当前正确的Rails 3指南(其中没有提到after_initialize)。不知道为什么edgerails指南是“不正确的”,但我认为edgerails指南应该是最新的最新指南?
我按原样保留这个问题,以防万一有人来寻找相同的“问题”。
宏式调用 after_initialize
是正确的方法。
应该将 after_initialize
用作方法或宏样式调用吗?
这可行,但会给出弃用警告:
def after_initialize
logger.info "Called after_initialize"
end
弃用警告:Base#after_initialize 已弃用, 请使用 Base.after_initialize :方法代替。
这有效,并且没有警告:
after_initialize :do_this_after_initialize
def do_this_after_initialize
logger.info "Called after_initialize"
end
但是 10.4 after_initialize and after_find 中的Active Record 验证和回调指南说:
...If you try to register after_initialize or after_find using macro-style class methods, they will just be ignored. This behaviour is due to performance reasons, since after_initialize and after_find will both be called for each record found in the database, significantly slowing down the queries...
这意味着宏样式的使用与方法样式的方式相比效率低下?
(我猜指南是错误的,因为代码为王:D)
<小时/>另一个更新 <小时/>一个commit here从2011年1月28日开始,建议正确的方法仍然是使用宏风格的调用,而不是def after_initialize
。
最佳答案
关于ruby-on-rails-3 - 如何在Rails 3中使用 'after_initialize'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4906704/
我有以下(高度简化的)模型,它使用 will_paginate class Search 1 end end 我的表演 Action 中的 Controller 代码是 @search = Se
每当我的 Rails 4 应用程序在部署后加载时,我想对另一个应用程序进行 REST API 调用,告诉它我的应用程序已准备就绪并开始一些测试。 我最初打算在 initialzers 文件夹中执行此操
inverse_of 似乎在 after_initialize 回调中不起作用 class User :user end class Face :faces after_initialize
更新 我错误地检查了edgerails指南,而不是当前正确的Rails 3指南(其中没有提到after_initialize)。不知道为什么edgerails指南是“不正确的”,但我认为edgerai
为 after_find 和 after_initialize 事件定义回调的唯一方法是将它们定义为方法。如果您尝试使用第二种技术将它们声明为处理程序,它们将被默默忽略。 谁能解释为什么会这样? 为什
我正在使用 FactoryGirl 和 Rspec 进行测试。 如果 init 为 nil,模型会在 init 之后设置一个外键。因此它使用另一个关联的数据。但是我该如何测试呢? 通常我会使用一个工厂
我有以下2个型号 class Sport :productable accepts_nested_attributes_for :product, :allow_destroy => true
我有两个具有一对多关联的模型。我想在初始化时根据父模型的某些状态在子模型上设置默认值。这涉及到在需要通过belongs_to关联访问父级的子级上触发after_initialize回调。问题是,当我使
我有一个这样定义的 Family 类: class Family true validates :name, :presence => true,
我有一个名为 Purchase 的模型,其中包含一个名为 tickets 和 amount 的字段。这个模型属于Event,是有价格的。我想在创建新 Purchase 后调用 update_amoun
我已经为我的项目编写了一个扩展 ActiveRecord 模型行为的方法,我已经删除了其中的大部分内容,请考虑以下代码: class ActiveRecord::Base def self.has
我有一个运行良好的模型: class Weight :user_id 它开始在验证时抛出错误。不是验证错误而是 Ruby 错误: >> w.valid? ActiveRecord::MissingA
我的 Rails 应用程序有许多形成层次结构的模型。例如:零售商 > 部门 > 产品类别 > 产品 > 评论。 业务需求是高权限用户可以与新的或现有的“普通”用户“共享”层次结构中的任何单个元素。如果
我定义了一个 after_initialize和一个 after_find在我的 User 中回调这样的模型: 请假设我的 User有一个名为 email 的属性也是。 class User Use
我正在尝试使用 after_initialize 为对象设置一些默认值。我遇到的问题是,无论如何创建对象,我都希望调用它。 我的类(class): class Foo "things")和Foo.c
型号: class Project :comments end class Post < AR::Base has_many :comments belongs_to :user end 现在
我是一名优秀的程序员,十分优秀!