рельсы 3 монгоида и жемчужина страны - PullRequest
1 голос
/ 22 марта 2012

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

Это прекрасно работает для наследования, но я также хотел бы иметь возможность иметь другие классы, принадлежащие ему.

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

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

1 Ответ

0 голосов
/ 23 марта 2012

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

...