rails g 脚手架系列名称:字符串 - 这是命名约定错误还是其他原因
Posted
技术标签:
【中文标题】rails g 脚手架系列名称:字符串 - 这是命名约定错误还是其他原因【英文标题】:rails g scaffold series name:string - is this a naming convention error or something else 【发布时间】:2011-10-01 11:12:19 【问题描述】:在我的博客上,我有属于某个系列的帖子。我尝试过搭建系列,但路线存在一些问题。
复数引擎不正确,所以我不得不手动更改Sery
、@series
和@sery
,这没什么大不了的。
resources :series
的路由似乎没问题。但是当我尝试创建一个系列时,form_for
助手抱怨路线。
然后当我使用控制台创建它时,它可以工作,但 rails 仍然在抱怨路线。
请创建一个简单的应用程序,看看有什么问题。
rails new test_series_app
然后运行脚手架生成器:
rails g scaffold series name:string
看看路线是怎么弄错的,请帮帮我!
【问题讨论】:
哪个版本的导轨?因为一切都在 3.1 RC 上运行? 如果您需要调整复数形式,请查看 config/initializers/inflections.rb Rails 3. 你是如何处理单数和复数形式的。 我用的是系列,系列,系列。 我假设你像 Mikhail-Nikalyukin 一样做了系列、系列和系列 【参考方案1】:为了记录,我将单数化代码放入脚手架生成器(是的,我对 Rails 的一项贡献)。它所做的只是检查record_name == record_name.pluralize
。如果是这样并且您还没有传入--force-plural
,它会调用record_name = record_name.singularize
。
在这种情况下,“series”.pluralize 与“series”.singularize 相同,所以我认为它不会做任何事情。
所以如果你遇到问题,你需要为这个词写一个变形器。
(我是在 Jeremy Kemper 2008 年 RailsConf 主题演讲之后写的,他在演讲中不小心传入了一个复数模型名称,导致自己在演讲过程中感到各种悲伤。)
【讨论】:
以上是关于rails g 脚手架系列名称:字符串 - 这是命名约定错误还是其他原因的主要内容,如果未能解决你的问题,请参考以下文章