【发布时间】:2012-03-22 01:50:41
【问题描述】:
我对 RoR 很陌生,我有一个关于库初始化的问题。 如何加载从 Rails 中现有类库扩展的类?
我想在this link的基础上扩展 ActiveRecord::base 如下
# lib/active_record/add_reset_pk_sequence_to_base.rb
module ActiveRecord
class Base
def self.reset_pk_sequence
case ActiveRecord::Base.connection.adapter_name
when 'SQLite'
new_max = maximum(primary_key) || 0
update_seq_sql = "update sqlite_sequence set seq = #{new_max} where name = '#{table_name}';"
ActiveRecord::Base.connection.execute(update_seq_sql)
when 'PostgreSQL'
ActiveRecord::Base.connection.reset_pk_sequence!(table_name)
else
raise "Task not implemented for this DB adapter"
end
end
end
end
我有意使用 seed.rb 中的扩展类来重置表的自动增量。 如何使用“require”语句加载文件? 我尝试了几种方法,不幸的是,对我来说效果不佳?
任何建议将不胜感激?
【问题讨论】:
-
我对您要执行的操作有点不知所措,但您的第一步可能是在 config/initializers 文件夹中创建一个新文件并在其中需要该文件
-
@JasdeepSingh 感谢您的评论。无论如何,将文件放入建议的文件夹后,它就像一个魅力!
-
好吧,我想我可以将其添加为答案.. :)
标签: ruby-on-rails module require