Ruby on rails 4 轨道4:can';t从app/lib向ActiveRecord添加新方法

Ruby on rails 4 轨道4:can';t从app/lib向ActiveRecord添加新方法,ruby-on-rails-4,activerecord,module,include,Ruby On Rails 4,Activerecord,Module,Include,我尝试在Rails 4上创建应用程序,并创建lib文件 app/lib/userstamp module Userstamp module MigrationHelper def self.included(base) # :nodoc: base.send(:include, InstanceMethods) end module InstanceMethods def userstamps(include_deleter_id = fa

我尝试在Rails 4上创建应用程序,并创建lib文件

app/lib/userstamp

module Userstamp

  module MigrationHelper
    def self.included(base) # :nodoc:
      base.send(:include, InstanceMethods)
    end

    module InstanceMethods
      def userstamps(include_deleter_id = false)
        column(:creator_id, :integer)
        column(:updater_id, :integer)
        column(:deleter_id, :integer) if include_deleter_id
      end
    end
  end
end

ActiveRecord::ConnectionAdapters::TableDefinition.send(:include, Userstamp::MigrationHelper)
…并将自动加载添加到app/config/application.rb

module App
  class Application < Rails::Application
    ...

    # Autoload lib/ folder including all subdirectories
    config.autoload_paths += %W(#{config.root}/lib)
    config.autoload_paths += Dir["#{config.root}/lib/**/"]
  end
end
模块应用程序
类应用程序
…并在我的应用程序/db/migrate中创建新迁移

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|

      t.timestamps null: false
      t.userstamps
    end
  end
end
class CreateUsers
为什么我会犯这个错误

undefined method `userstamps' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007feca6a11608>
未定义的方法“userstamps”#
包含Userstamp::MigrationHelper
类CreateUsers
虽然此代码可以回答问题,但提供有关此代码回答问题的原因和/或方式的其他上下文可以提高其长期价值。
include Userstamp::MigrationHelper 

class CreateUsers < ActiveRecord::Migration

  def change
    create_table :users do |t|

      t.timestamps null: false
      t.userstamps
    end
  end
end