pet*_*han 4 ruby-on-rails models
在我的代码中,我有一个名称包含字符串'cache'的模型.例如:
class DataCache < ActiveRecord::Base
Run Code Online (Sandbox Code Playgroud)
而表名是data_caches.当我跑:
"data_caches".classify.constantize.new
Run Code Online (Sandbox Code Playgroud)
要初始化模型,我得到一个这样的错误:
NameError: uninitialized constant DataCach
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我期待"DataCache",但得到了"DataCach".
看看Rails 中的Inflections类.将以下文本添加到config/initializers/inflections.rb类中:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'cache', 'caches'
end
Run Code Online (Sandbox Code Playgroud)
现在在rails控制台中试用这个词:
>> "caches".singularize
=> "cache"
>> "cache".pluralize
=> "caches"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |