Rails ActiveSupport InflectionsPosted by: Prachi | 04 Jul 2014 | Comments
We know, In Rails the
Inflector transforms words from singular to plural, class names to table names .
The default inflections for pluralization, singularization, and uncountable words are kept in
In this post, we will go through one example explaining the inflections .
Leave model .
For this controller routes generated are as follows -
new_leafe GET /leaves/new(.:format) leaves#new edit_leafe GET /leaves/:id/edit(.:format) leaves#edit leafe GET /leaves/:id(.:format) leaves#show
> 'leaves'.singularize => "leafe"
here, the singularize format of 'leaves' is taken as 'leafe' .
Suppose, we want to change the singularize format to 'leaf', then -
Add rule in
ActiveSupport::Inflector.inflections do |inflect| inflect.irregular 'leaf', 'leaves' end
Now, check routes for same -
new_leaf GET /leaves/new(.:format) leaves#new edit_leaf GET /leaves/:id/edit(.:format) leaves#edit leaf GET /leaves/:id(.:format) leaves#show
> 'leaves'.singularize => "leaf"
It Works! In this way, by adding
inflection rules, we can override naming conventions in rails .