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 脚手架系列名称:字符串 - 这是命名约定错误还是其他原因的主要内容,如果未能解决你的问题,请参考以下文章

现有模型和数据库表的 rails g 脚手架

使用带有 Rails 脚手架的测试驱动开发 (TDD)

Rails 生成脚手架错误消息

rails 生成脚手架用户名:字符串电子邮件:字符串

Ruby on Rails URL 格式

Rails Scaffold 方法的最佳实践