5

似乎使用 Rails/AR 和Inflector添加到Stringby的方法ActiveSupport,我希望默认情况下,

Nested::ClassDerived::FromAR.name.tableize == Nested::ClassDerived::FromAR.table_name

但实际上tableize调用underscore, 并且underscore实际上并没有强调::嵌套的类分隔符,而是将其替换为 a/以创建路径名。也许应该调用这个方法pathify

无论如何,我需要实际的下划线。所以我正在考虑定义一个新的String变形器方法:

def new_inflector
  underscore.gsub('/', '_')
end

这实际上会强调嵌套的类名字符串。

所以,我的问题是,underscore为了正确和常规地命名我的新变形器方法,没有配置的 ' ' 的正确变形是什么。会是' underscoreize'(遵循''建立的约定tableize)还是' underscorize'?或者也许underscoreify

任何见解表示赞赏。

4

2 回答 2

8

您是否尝试过使用下划线作为分隔符进行参数化?

parameterize('_')
于 2011-07-30T16:48:37.110 回答
1

这对我有用 Ruby 2.5.0Rails 5.1.6

"Admin::Role".parameterize.underscore
#=> "admin_role"
于 2018-07-31T22:11:13.773 回答