【发布时间】:2012-09-22 21:26:54
【问题描述】:
我创建了一个简单的 railtie,向 ActiveRecord 添加了一堆东西:
0 module Searchable
1 class Railtie < Rails::Railtie
2 initializer 'searchable.model_additions' do
3 ActiveSupport.on_load :active_record do
4 extend ModelAdditions
5 end
6 end
7 end
8 end
我需要这个文件(在 /lib 中),方法是在调用应用程序之前将以下行添加到 config/environment.rb:
require 'searchable'
这非常适合我的应用程序,没有大问题。
然而,我遇到了 rake db:seed 的问题。
在我的种子.rb 文件中,我从 csv 读取数据并填充数据库。我遇到的问题是我对 ActiveRecord 所做的添加没有被加载,并且种子因 method_missing 错误而失败。我没有调用这些方法,但我假设因为 seed.rb 加载了模型,它会尝试调用一些方法,这就是它失败的原因。
谁能告诉我一个更好的放置 require 的地方,以便每次加载 ActiveRecord 时都包含它(不仅仅是在加载完整的应用程序时)?我希望将代码保留在我的模型之外,因为它是我的大多数模型之间共享的代码,我希望它们保持干净和干燥。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3