Rails 中 "Media/Medium" 的复数化和单数化(变形) 5
Pluralizations and Singularizations (Inflections) for "Media/Medium" in Rails 5
我正在使用 Rails 5,我刚刚使用脚手架工具创建了一个 Media
模型。
rails g scaffold media name:string
我得到了不同的名称和路线以及视图等...
它不是正确的复数形式,所以当我 rake routes
时,我得到了 medium
意想不到的路线,因此我在视图中遇到了不同的问题。
当我尝试使用 <%= form_for @media do ..
时,我收到关于 no method media_index_path
的抱怨。
如何修复它并使其正常运行?
整天都在搜索这个,当我 运行 第一个脚手架时有点好奇,它建议使用一种叫做 inflections
的东西,它基本上负责单词的复数和单数class 个名字:
我为修复它所做的是在下一种方式中使用 inflections
:
删除我刚刚创建的模型。
rails d scaffold Media
编辑config/initializers/inflections.rb
:
ActiveSupport::Inflector.inflections(:en) do |inflect|
# Here you can put the singular and plural form you expect
inflect.irregular 'media', 'medias'
end
现在再次执行脚手架:
rails g scaffold Media
现在您必须按照预期的方式拥有一切。因为你已经覆盖了 Pluralizations 和 Singularizations (变形) in Ruby on Rails.
希望有用。
这个问题对我的英语真的是一个挑战:D
我用谷歌搜索了名词 media,它说一些纯粹主义者坚持认为从拉丁语借来的词 media 是medium 的复数形式,所以从这个角度来看,Rails 生成器做了正确的工作。
但在日常英语中,人们只是将media用作不可数名词或集体名词。如果您同意这一点,请调整 config/initializers/inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.uncountable %w( media )
end
我正在使用 Rails 5,我刚刚使用脚手架工具创建了一个 Media
模型。
rails g scaffold media name:string
我得到了不同的名称和路线以及视图等...
它不是正确的复数形式,所以当我 rake routes
时,我得到了 medium
意想不到的路线,因此我在视图中遇到了不同的问题。
当我尝试使用 <%= form_for @media do ..
时,我收到关于 no method media_index_path
的抱怨。
如何修复它并使其正常运行?
整天都在搜索这个,当我 运行 第一个脚手架时有点好奇,它建议使用一种叫做 inflections
的东西,它基本上负责单词的复数和单数class 个名字:
我为修复它所做的是在下一种方式中使用 inflections
:
删除我刚刚创建的模型。
rails d scaffold Media
编辑
config/initializers/inflections.rb
:ActiveSupport::Inflector.inflections(:en) do |inflect| # Here you can put the singular and plural form you expect inflect.irregular 'media', 'medias' end
现在再次执行脚手架:
rails g scaffold Media
现在您必须按照预期的方式拥有一切。因为你已经覆盖了 Pluralizations 和 Singularizations (变形) in Ruby on Rails.
希望有用。
这个问题对我的英语真的是一个挑战:D
我用谷歌搜索了名词 media,它说一些纯粹主义者坚持认为从拉丁语借来的词 media 是medium 的复数形式,所以从这个角度来看,Rails 生成器做了正确的工作。
但在日常英语中,人们只是将media用作不可数名词或集体名词。如果您同意这一点,请调整 config/initializers/inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.uncountable %w( media )
end