我需要为“chassis”这个词定义一个变形,其中同一个词定义了单数和复数,我真的很努力。我以为我在那里有 initialize/inflections.rb 定义
ActiveSupport::Inflector.inflections do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
inflect.uncountable(/.*chassis.*/i)
end
记下inflect.uncountable %w( fish sheep )
我第一次设置脚手架时尝试使用 inflect.uncountable %w( chassis ) 的示例,但这根本不起作用,因为它没有考虑路径中的前导部分并导致关系问题以及 car_chassis 和 chassis_lookup 等其他表。
在查看了作为 Stack Overflow 中类似问题的答案提供的各种解决方案后,我最终想出了inflect.uncountable(/.*chassis.*/i)
似乎可以处理脚手架的问题,但是我遇到了路线问题,其中<%= link_to "Chassis", admin_chassis_url%>
给我一个没有路线的显示操作错误。
ActionController::RoutingError - No route matches {:action=>"show", :controller=>"admin/chassis"}
这是有道理的,因为我想要索引操作,所以我没有将对象传递给路径,但 Rails 显然认为我正在请求显示操作
正则表达式的其他示例
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
对我来说只是完整的gobbledygook,学习正则表达式需要一生的学习,我既没有兴趣也没有头脑清醒,并且rails文档http://api.rubyonrails.org/classes/ActiveSupport/Inflector/Inflections .html上的屈折变化坦率地说是非常可悲的。
我显然没有正确的拐点。谁能给我一个完整的解决方案,说明我应该如何为我和其他人定义“机箱”一词的变形,因为我发现以前的答案都没有提供完整和正确的解决方案