2014-08-31 89 views
1

我正在寻找一种解决方案,以便在Rails 4中调用方法(如模型内的before_create,after_create等),并且每当应用程序尝试获取数据时...在Rails模型中获取数据时调用方法

例如你当然有模式,你甚至可以通过关系

other_model.courses 

我想自动调用的方法做类似

Course.first 
    Course.all 
    Course.where... 

或诸如

def access_courses 

     binding.pry 

    end 

这是课程模型中的内容。这样做的目的是为了简化很多东西,我需要大量的链接表...

有没有办法做到这一点?谢谢大家;)

+0

您应该能够在模型中定义'after_find'回调,如链接答案中所述。 – 2014-08-31 15:56:13

+0

你比我更好地搜索我认为^^我会尝试一下,因为我的问题涉及很多方法来接电话:) – Laurent 2014-08-31 15:56:53

回答

1

ActiveRecord::Callbacks documentation

最后一个after_findafter_initialize触发回调对于通过取景器发现和实例化的每个对象,以after_initialize后新的对象实例化以及被触发。

因此,一个或两个这些可能对你有用...虽然通常我会说不使用这些:)。

+0

为什么“你通常会说不使用这些”? – Mischa 2014-08-31 22:51:11

+0

@Mischa,因为这些方法是为了减轻情况,因为OP似乎需要。通常情况下,使用这些方法对于任何事情都是过度的,因为它们被访问了多少次。对于大多数情况,如果您想要执行查找对象的操作,最好使用一种特殊的方法来查找对象并执行该操作,以便将额外的工作保留在有限的查找子集中。 – pdobb 2014-08-31 23:26:13