以下の内容はhttps://kikeda1104.hatenablog.com/entry/2016/10/07/225715より取得しました。


Module名を切り出してclass_nameを取り出す。

Qiitaに同じ内容の記事が丁度あって悲しい気分になったが、コードを書いていたので記録として残しておく。

本ブログは、備忘録という面もありますので、読まれている方は気分を害さないでいただきたいです。

動的にSQLのテーブル、カラムの別名を定義したくなり、クラス名とメソッド名を利用していたが、 app/service配下に置かれている訳でもなく、app/service/hoge/...rb という形でclassが置かれているので、直接classをそのまま取るわけにもいかないので、即興で書いていた。

サンプルコード

module Hoge
  class BaseService
    def initialize
    end

    def class_name
      self.class.to_s.split('::').last.underscore
    end
  end
end

動作

$ Hoge::BaseService.new.class_name
=> "base_service"

以上になります。

参考

名前空間を取り除いたクラス名を取得する - Qiita




以上の内容はhttps://kikeda1104.hatenablog.com/entry/2016/10/07/225715より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14