モデルの1つの属性にメソッドチェーンを動的に作成しようとしています。今では私はこの機能を持っています:
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が何らかの理由であると思います)、プログラムはスタックループに入ります。
その属性の名前を変更しようとしているので、メソッドにその名前を使用できます...
誰かがこれについて私に教えてくれませんか。