рельсы 3 монгоид и камень стран

Я хотел бы использовать жемчужину стран, которую я нашел здесь, вместо создания отдельной модели.

Он отлично работает для наследования, но я также хотел бы, чтобы другие классы принадлежали ему.

Это возможно? IE что-то вроде ниже. Есть ли какой-то метод, который я мог бы использовать для предоставления ключа дочерним классам?

https://github.com/hexorx/countries

class Country < ISO3166::Country
  #include Mongoid::Document    

  #RELATIONS
  has_many :cities
  has_many :reviews, as: :reviewable
end

На данный момент я получаю NoMethodError: неопределенный метод `has_many' для Country:Class

Или какой-то способ включить/наследовать атрибуты драгоценного камня после инициализации объекта?

class Country# < ISO3166::Country
  include Mongoid::Document

  #field :name, :type => String
  field :country_id, :type => String

  ##RELATIONS
  has_many :cities
  has_many :reviews, as: :reviewable


  def after_initialize
    ISO3166::Country.find_country_by_alpha3(self.country_id)
  end


end

person ere    schedule 21.03.2012    source источник


Ответы (1)


Для меня лучшим поведением является не использование has_many в вашем случае, а создание метода, который вы хотите, с запросом Mongoid внутри.

person shingara    schedule 23.03.2012