Миксиновые модули в модели в рубине на рельсах - PullRequest
1 голос
/ 26 июля 2011

Хотелось бы, чтобы функциональность разделялась несколькими моделями для абстрагирования в модуль.

У меня есть эта модель:

class Report < ActiveRecord::Base
  include AppModel
  has_and_belongs_to_many :tag
  belongs_to :city
  belongs_to :user
end

(также, как сделать так, чтобы мой код занимал несколько строк в стековом потоке? Это не сохраняет мои новые строки.)

Тогда у меня есть модуль (в app / models / app_model.rb):

module AppModel 
  def self.list
    find(:all, :order => 'name asc').map { |item| [item.name, item.id] }
   end
end

но если я сделаю Report.list, это не сработает. Я подозреваю, что есть проблема, если в модуле я делаю def function или def self.function?

Итак, опять мой вопрос: как сделать доступной функцию, такую ​​как Report.list или Report.find_tagged, которая определена в модуле.

1 Ответ

5 голосов
/ 26 июля 2011

include mix методы экземпляров, а не на уровне класса.Используйте extension метод или orverride include .

PS для использования форматирования кода на SO используйте {}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...