简单地更改模型名称的步骤

时间:2013-08-04 01:09:21

标签: ruby-on-rails ruby-on-rails-3 naming-conventions modeling

所以我认为我提出了我的命名惯例(或者更确切地说我想以不同的方式做到这一点)。我最初创建了一个“人物”模型(创建了person.rb)。我还创建了一个persons_controller,但显然rails会查找“People”,所以我将控制器名称更改为people_controller.rb(在文件中...而不是在命令行中)。

我是rails的新手,所以我真的需要废弃所有这些并更改我的名字因为这个设置(不得不使用Person,Persons,People)在整个模型/控制器/视图中对初学者来说有点混乱。我想做的就是将“人物”或“人物”改为“玩家”。因此,如果我从头开始,我会在命令行中执行“rails generate model Player”,并且“rails生成控制器播放器”。但我不知道如何将现有的控制器和模型名称更改为此...我无法完全理解与此主题相关的一些较旧的问题。

这里非常感谢任何帮助。考虑到我的新手状态,一步一步的指导就像你和一个12岁的孩子交谈一样,也非常鼓励。

谢谢你们,

2 个答案:

答案 0 :(得分:1)

将解释一切的基本惯例

关于班级名称和文件名

  • 类名必须与文件路径对应。在英语中,如果你有Thing模型,它必须在models / thing.rb文件中;如果你有ThingsController它必须在controllers / things_controller.rb
  • 带有驼峰的类名(即SomeThing)必须在带有下划线的文件中声明(即some_thing.rb)。文件名用小写字母书写,下划线用于“分隔”单词。其他例子:ThisIsEasyToUnderstand将给出this_is_easy_to_understand

关于型号名称,表名称和控制器名称

  • 型号名称是单数,表名是复数,控制器是复数。例如,Thing模型将具有things表,并且将与ThingsController控制器一起使用
  • Rails最多尝试使用正确的英语语法,因此Person模型可以使用people表和PeopleController控制器
  • 如果模型名称在英语中以单数和复数形式相同,则可能会遇到问题。例如:飞机,眼镜,剪刀等。我不会详细说明保持我的答案清晰的解决方案,但知道它可以附加,你可以在互联网上找到解决方案。

概述:

  • 创建模型时,请以单数形式创建名称
  • 创建控制器时,请以复数形式创建名称
  • 如果您需要重命名已创建的模型或控制器,则必须在代码中重命名,但也要重命名文件名
  • 如果您需要重命名模型,您还需要重命名其表格,并且需要进行迁移(搜索谷歌搜索“rails migration rename table”)

希望它对您在Rails中的第一步有所帮助

答案 1 :(得分:0)

您可以通过调用

快速废弃模型(及其相关文件)
rails destroy model [modelname]

与控制器,脚手架等相同

rails destroy scaffold [modelname]

rails destroy controller [controllername]

当然,删除它们后没有撤消,所以我先创建新的控制器/模型/脚手架,迁移任何相关的代码,然后销毁无用的文件。