瞎扯淡 新闻 News 该如何建 Model 名字?

QueXuQ · 2014年09月24日 · 最后由 sharpx 回复于 2016年05月11日 · 3826 次阅读

原来我的命名困难症,但是 news 建一个 model 就叫 new 好像又不行,news 又没有复数形式?怎么破?? 直接建 new 的名字是会报错的,是不是应该另选一个名称做为“新闻”的 model 比较好。

#1 楼 @yukihiro_matz 可是 News 没有复数形式啊。

一样可以叫 news, 只不过路由会变成类似news_index_path这样的形式

#3 楼 @Teddy

@news = News.all
@news.each do |news|
end

这样的情况怎么破?

model 没用 new 但是 controller 用了 news . 表打我..

#4 楼 @Msms 拼音不就更让人纠结了吗。😩 😩 😩

#6 楼 @hging 好吧,那你 model 用什么名字? 😉

我一般闭包里喜欢用 record,这样很多东西都可以重用了

#8 楼 @QueXuQ 没写 model 我用这个写了个 API 接口罢了。囧。

你可以叫 Article 或者 Post 啊

xinwen 杠杠滴

news 是不可数名词,单复数都是 news,而且 Rails 也能自动处理这一点。

'news'.singularize  # news

不过实际写代码还是会碰到一些命名上的麻烦,所以还是改个名字吧。比如改成 article, message 之类的。

我靠,非得用 news 啊,你不能用 post, article 之类的单词么。

我也想问这个问题…就是放一些“最新动态”这个类型的内容用什么 model 名,post,article 都不合适吧

用 story 或 thread 怎样?

#15 楼 @oppih28 Event,TimelineEvent

#16 楼 @zhaqiang thread 是保留字

#18 楼 @huobazi 感谢指出错误。

#5 楼 @QueXuQ

@news = News.all
@news.each do |single_news|
end

之类的

哎呀,我也有命名困难的问题

@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

Post 就挺好

我对 many to many 的表有命名恐惧症

Story, Article, Post, Entry :D

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 名可用

需要 登录 后方可回复, 如果你还没有账号请 注册新账号