Ich würde gerne Klassenmethode mit Modul Nr. Betreffen (https://github.com/37signals/concerning - Teil von Rails 4.1). Dadurch würde ich Module, die von einer einzelnen Klasse verwendet werden, wieder in die Klasse verschieben.Kann ich Klassenmethoden mit Modul # definieren?
Es scheint jedoch, dass ich Klassenmethoden nicht definieren kann. Vor diesem Hintergrund:
class User < ActiveRecord::Base
attr_accessible :name
concerning :Programmers do
module ClassMethods
def programmer?
true
end
end
end
module Managers
extend ActiveSupport::Concern
module ClassMethods
def manager?
true
end
end
end
include Managers
end
Ich würde erwarten, diese beiden zu arbeiten:
User.manager?
User.programmer?
Aber die zweite hebt
NoMethodError: undefined method `programmer?' for #<Class:0x007f9641beafd0>
Wie kann ich Klasse Methoden Modul # betreffend definieren?
FWIW, Beispielprojekt: https://github.com/johnnaegle/concerning-example –
https://github.com/37signals/concerning/issues/1 –
Dies ist in Rails behoben und betrifft jetzt. –