tableize

クラス名・ファイル名・テーブル名の変換

クラス名からファイル名へ変換(underscore)

適応バージョン
  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1
説明

クラス名からファイル名へ変換する。
「config/initializers/inflections.rb」に定義を追加することによって、追加できる。

使い方
<クラス名>.underscore
「Product」を変換
"Product".underscore
# "product"
「AdminUser」を変換
"AdminUser".underscore
# "admin_user"
「Backoffice::Session」を変換
"Backoffice::Session".underscore
# "backoffice/session"
ソースコード
ソースコードを見る
# File activesupport/lib/active_support/inflector/methods.rb, line 90
def underscore(camel_cased_word)
  word = camel_cased_word.to_s.gsub('::', '/')
  word.gsub!(/(?:([A-Za-z\d])|^)(#{inflections.acronym_regex})(?=\b|[^a-z])/) { "#{$1}#{$1 && '_'}#{$2.downcase}" }
  word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
  word.tr!("-", "_")
  word.downcase!
  word
end
ソースコード検索

ファイル名からクラス名へ変換(camelize)

適応バージョン
  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1
説明

ファイル名からクラス名へ変換する。
「config/initializers/inflections.rb」に定義を追加することによって、追加できる。

使い方
<ファイル名>.camelize
「product」を変換
"product".camelize
# "Product"
「backoffice/session」を変換
"backoffice/session".camelize
# "Backoffice::Session"
ソースコード
ソースコードを見る
# File activesupport/lib/active_support/inflector/methods.rb, line 67
def camelize(term, uppercase_first_letter = true)
  string = term.to_s
  if uppercase_first_letter
    string = string.sub(/^[a-z\d]*/) { inflections.acronyms[$&] || $&.capitalize }
  else
    string = string.sub(/^(?:#{inflections.acronym_regex}(?=\b|[A-Z_])|\w)/) { $&.downcase }
  end
  string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{inflections.acronyms[$2] || $2.capitalize}" }
  string.gsub!('/', '::')
  string
end
ソースコード検索

モデルクラス名からテーブル名へ変換(tableize)

適応バージョン
  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1
説明

モデルクラス名からテーブル名へ変換する。
「config/initializers/inflections.rb」に定義を追加することによって、追加できる。

使い方
<モデルクラス名>.tableize
「Page」を変換
"Page".tableize
# "pages"
「AdminUser」を変換
"AdminUser".tableize
# "admin_users"
ソースコード
ソースコードを見る
# File activesupport/lib/active_support/inflector/methods.rb, line 143
def tableize(class_name)
  pluralize(underscore(class_name))
end
ソースコード検索

テーブル名からモデルクラス名へ変換(classify)

適応バージョン
  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1
説明

テーブル名からモデルクラス名へ変換する。
「config/initializers/inflections.rb」に定義を追加することによって、追加できる。

使い方
<テーブル名>.classify
「people」を変換
"people".classify
# "Person"
ソースコード
ソースコードを見る
# File activesupport/lib/active_support/inflector/methods.rb, line 157
def classify(table_name)
  # strip out any leading schema name
  camelize(singularize(table_name.to_s.sub(/.*\./, '')))
end
ソースコード検索