Я пытаюсь динамически создать цепочку методов в одном атрибуте в моей модели.
К настоящему времени у меня есть эта функция:
def create_filtered_attribute(attribute_name)
alias_attribute "#{attribute_name}_without_filter", attribute_name
define_method "#{attribute_name}" do
filter_words(self.send("#{attribute_name}_without_filter"))
end
end
, поэтому я получаю строку с именем атрибута, псевдонимом которого является ' _without_filter ' (здесь alias_method или alias_method_chain терпит неудачу, потому что атрибут не существует при создании класса),
и я создаю новый метод с именем атрибута, где я фильтрую его содержимое.
Но почему-то, когда я вызываю "# {attribute_name} _without_filter" , он вызывает мой новый метод (я думаю, потому что alias_attribute немного как), и программа переходит в цикл стека.
Я пытаюсь переименовать этот атрибут, чтобы я мог использовать его имя для метода ...
Может кто-нибудь, пожалуйста, просветите меня об этом.