мой рубиновый (на рельсах) класс выглядит так:
класс Foo def self.method1 someAction конец
def self.method2 someAction конец
def someAction // doSmth конец конец
есть идеи, как заставить эту работу или добиться того же поведения другим способом?
Благодарность!





Вы не можете вызвать метод экземпляра из метода класса без фактического экземпляра самого класса. Вы можете сделать это так:
class Foo
def self.method1
myFoo = Foo.new
myFoo.someAction
end
def someAction
//doSmth
end
end
Спасибо за ответ! однако, поскольку someAction скорее является помощником, я не хотел создавать для него новый экземпляр ... и тогда меня осенила крутая идея. я только что определил его рядом с классом :)) ах, глупый я: /
Не стоит голосовать против, но вы не должны использовать имя класса класса в методе. myFoo = new работать будет.
Если some_action подходит как метод класса, я бы сделал это так:
class Foo
def self.method1
some_action
end
def self.some_action
# do stuff
end
def some_action
self.class.some_action
end
end
Если method1 должен быть удобным методом, я бы хотел, чтобы Hates_ сказал об этом.
class Foo
def self.method1
self.new.some_action
end
def some_action
# do stuff
end
end
Решение для меня обычно заключается в том, является ли some_action больше вспомогательным методом (например, генерация случайного ключа, и в этом случае я бы выбрал первую форму) или это точка входа в что-то более сложное (например, парсер, в котором случае я бы выбрал вторую форму).
Недостаточная и непонятная информация