我在执行/选择用户表后使用after_find
回调来对手机进行非规范化。
after_find :denormalize_phone
def denormalize_phone
self.phone = "....."
end
当我尝试创建如下的动态方法时,我遇到了问题。我想跳过此特定块的after_find
回调。任何人都可以帮助我吗?
User.order(:state).map(&:state).uniq.each do |state|
define_singleton_method("is_#{state}_for") do |r|
....
end
end
TX
答案 0 :(得分:1)
不要使用after_find。说真的,我找不到任何使用after_find的理由。以下是您的选择(从最佳到最差的IMO订购):
format_phone(@user.phone)
这样的东西。当然,缺点是你必须到处打电话给他们。phone
方法。要获取它的数据库值,您可以使用self [:phone]。这有点乱,因为你将表示逻辑放在数据层中。