我有一个奇怪的问题:
启动服务器后出现此错误:
undefined local variable or method `new_media_path'
要修复此问题,我必须转到routes.rb并更改
resources :media
到
resource :media
再次
resources :media
这很烦人。有什么想法可以解决这个问题吗?
答案 0 :(得分:5)
您应该尝试new_medium_path
,因为media
是medium
的复数形式
如果您运行rake routes
,您将看到所有可用的路线。
答案 1 :(得分:3)
您还可以使用Inflector类通知rails有关正确复数的信息。它处理大多数工作正常,但像“媒体”这样的非标准复数并不总是预先定义的。要添加自己的内容,请修改 config / initializers / inflections.rb ,并在最后添加:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'medium', 'media'
end
这应该让Rails处理所有复数/单数 - 注意这会影响它认为DB表名也是如此,所以它会期望模型 class Medium ,并且表格名称为媒体
要将复数和单数转换为相同的内容(即始终为'media'),请使用:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable 'media'
end