Scaffolding on Rails 6.1 api based app with versioning on controller

Posted

技术标签:

【中文标题】Scaffolding on Rails 6.1 api based app with versioning on controller【英文标题】: 【发布时间】:2021-05-14 02:17:15 【问题描述】:

我正在学习使用 6.1 版本构建 Rails API 应用程序。我通过以下方式创建了一个rails应用程序

rails new book-gallery --api --mysql

应用创建成功。我接着做了以下操作

rails g scaffold Author name:string country:string

这使用 crud 创建了控制器和模型。但我希望对 API 进行版本控制

要求:

/v1/authors

如果我在脚手架上传递版本控制,模型也会被版本控制,这不应该是

rails g scaffold v1/Author name:string country:string

控制器路径是正确的,但是我得到的模型是v1.rb和名称为v1的文件夹。

我不需要模型中的版本控制,我试图将其保留为author.rb

任何指导将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

你无法用 1 个命令实现你想要的。

你可以做一个scaffold_controller并在没有脚手架的情况下创建模型:

rails g model Author name country

rails g scaffold_controller v1/Author

对于模型属性,您也可以跳过:string。如果没有给出数据类型,它将默认将其设置为字符串。

【讨论】:

你正在尝试使用一个命令。这是我试过的,它有效。谢谢你的字符串部分。但是这种方法的问题在于控制器它用户 V1 用于从数据库中获取。示例V1::Author.all

以上是关于Scaffolding on Rails 6.1 api based app with versioning on controller的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby on Rails 中为帖子添加标签

Learn Rails5.2- Scaffolding and REST

升级到 Rails 6.1 后的 Rails 路线问题

rails g mongoid:配置不工作 Rails 6.1

Rails 6.1 多数据库外键

Rails 6.1 如何将文件渲染到页面模板中