原来我的命名困难症,但是 news 建一个 model 就叫 new 好像又不行,news 又没有复数形式?怎么破?? 直接建 new 的名字是会报错的,是不是应该另选一个名称做为“新闻”的 model 比较好。
news 是不可数名词,单复数都是 news,而且 Rails 也能自动处理这一点。
'news'.singularize # news
不过实际写代码还是会碰到一些命名上的麻烦,所以还是改个名字吧。比如改成 article, message 之类的。
@QueXuQ 楼组如果直接使用 news 的话可以在config/initializers/inflections.rb
中添加代码:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'news', 'news'
end
同样的单词还有bonus、stats
,这些坑在工作中都遇到过。详细请参考:http://api.rubyonrails.org/classes/ActiveSupport/Inflector/Inflections.html
https://github.com/activeadmin/activeadmin/commit/aafde5187fc2ac3c39a359036e0229c1a6c0519e
看这里使用了
if controller.resources_configuration[:self][:route_collection_name] == controller.resources_configuration[:self][:route_instance_name]
route << "index"
end
route << 'path'
route.compact.join('_').to_sym
来让 news 这样的 model 名可用