Rails 3:在模型中添加一些方法,用于开发



我想在我的App的一些AR模型中添加一些方法;但我认为它们应该只在某些情况下可用;这需要一些元编程。

所以我想有一个文件,我把我所有的调试方法,唯一的问题是在哪里把它?

示例,我有模型:

class Admin::Restaurant < ActiveRecord::Base 
class Admin::Order < ActiveRecord::Base 

在我的文件中,我有(它确实取决于MetaWhere.operator_overload!初始化):

if Rails.env != 'production'
  class Admin::Order
    def self.mock_make
      r = Restaurant.first
      user_query = User.where( :created_at > "2011-04-01"  )
      u = user_query.first( :offset => ( user_query.count * rand ).to_i )
      o = r.orders.new
      o.user = u
      o.value = rand(100) + rand.round(2)
      if o.save
        return o
      else
        return nil
      end
    end
  end
end

事情是……我不能让它工作在/config/initializers/app/models

将其包装为外部模块,并以if条件包含

class MyClass << ActiveRecord::Base
  include MyExtraModule if Rails.env == 'development'
end

放到config/environments/development.rb

相关内容

  • 没有找到相关文章