Jae*_*Cho 9 string ruby-on-rails
我用缩写词定义了一些活跃的记录.RvPark(休闲车公园).当我为课程名称命名时,我会得到'Rv Park'.它应该是'RV Park'.有没有办法做到这一点?由于这个模型与其他模型共享代码,我需要创建一个通用的解决方案,但我无法想出一个.
我确实看到了对此的讨论,但没有一个解决方案对我有用.任何见解都表示赞赏.
Ans*_*son 16
您可以通过配置ActiveSupport :: Inflector来执行此操作,ActiveSupport :: Inflector提供titleize方法.只需在初始化程序中定义您自己的变形.
# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.acronym 'RV'
end
Run Code Online (Sandbox Code Playgroud)
重新启动您的应用以获取更改.现在titleize知道如何处理"RV".启动Rails控制台以检查它:
> "RvPark".titleize
=> "RV Park"
> "rv".titleize
=> "RV"
Run Code Online (Sandbox Code Playgroud)
请参阅链接的文档,了解更多有关变形的精彩内容.
更新:在我发布此内容后,Rails Inflector 中添加了缩写词支持。
请参阅@Anson对 Rails 3.2 及更高版本的回答。
titleize这看起来像是一个不适合的边缘情况。问题是capitalize里面的调用总是会把RV变成Rv。
我将为内部调用的模型创建一个通用名称函数self.class.titleize,然后在 RVPark 模型中重载它。
| 归档时间: |
|
| 查看次数: |
2026 次 |
| 最近记录: |