クラスメソッドを動的に作成する場合、作成時に既知のいくつかの引数を焼き込む方法はありますか?
モデルを作成するときに:slug
与えられた属性を生成するモジュールを自分用に作成しました。https://gist.github.com/firedev/4943289:title
ただし、この部分をリファクタリングしたいと思います。
def create_slug(title_attr, slug_attr, &block) # generated method
self.send(slug_attr) # I have to pass slug_attr from outside
...
end
したがって、ここですべてのパラメーターを削除できます。
self.send :after_initialize do
create_slug(title_attr, slug_attr, &block) # I pass attributes from here
end
代わりに、作成されたメソッドにパラメーターを組み込みます。
def create_slug # this method is generated automatically
self.send(:slug) # I want :slug to be baked in
...
end
self.send :after_initialize, :create_slug # no attributes