Rails 3: добавить несколько методов в модели для разработки - PullRequest
0 голосов
/ 21 апреля 2011

Я хотел бы добавить некоторые методы к некоторым моделям 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.

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Положите их в config/environments/development.rb

1 голос
/ 21 апреля 2011

Оберните его как внешний модуль и включите его с if условие

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