我从ruby和rails开始,这是我第一天阅读指南。
我尝试用各种模型生成一个scaffold,例如Game
和Platform
,我尝试替换一个现有的过时的Symfony PHP项目,并选择Ruby/RoR作为学习目的,也是因为我对博客演示视频中的hotwire印象深刻。
一个一米二纳米一x一米三纳米一x一米四纳米一x一米五纳米一x一米六纳米一x一米七纳米一x
或者
type Game {
id: ID!
name: String
slug: String
platform: Platform!
}
type Platform {
id: ID!
name: String
slug: String
games: [Game]
}
现在我想用“rails g scaffold”来生成这两个模型,我读到过其他的问题,人们必须使用“:references”,但是我在任何activereord指南中都找不到这个关键字。rails g scaffold Game name:string slug:string platform:references
这是我目前所拥有的。是否有可能通过cli定义与外键的关联?
生成模型/支架的典型工作流程是什么?您是否只是从最小的模型开始,然后手动编辑迁移,添加fk和关联?
我想我更想为ruby/rails/other寻找一个不和谐的服务器。我有很多问题,但不觉得这属于这里,因为我会创建一个又一个问题。但现在让我们坚持这个。(附带问题,当谈到rails中的authn/z时,事实上的标准是什么?另一个问题,是否有类似的自动slugifies,看到名称和slug连接?)
问题是如何在命令行上表示模型关联?
1条答案
按热度按时间apeeds0o1#
有没有可能通过cli定义与外键的关联?
是的。
您可以通过生成器定义
belongs_to
关联-因为它是 * this * models表上的数据库列实际支持的唯一关联。您不能通过生成器定义has_one
、has_many
或has_and_belongs_belongs_to_many
-它们必须稍后添加到模型中。现在我想用"rails g scaffold"来生成这两个模型,我读到过其他的问题,人们必须使用":references",但是我在任何activereord指南中都找不到这个关键字。
它实际上不是一个关键字,而是
references/belongs_to
(后者是一个别名)在生成模型或迁移时的列类型(很好的一种)。如果您运行
rails g model -h
,它会详细列出选项:也可以将
references
视为一种类型,例如,如果运行:bin/rails generate model photo title:string album:references
它将生成一个
album_id
列,例如,当你使用一个belongs_to
关联时,你应该生成这些类型的字段。当您将
belongs_to :album
与模型生成器一起使用时,它还会在模型中添加belongs_to :album
。生成模型/支架的典型工作流程是什么?您是否只是从最小的模型开始,然后手动编辑迁移,添加fk和关联?
支架主要用于快速原型化,或者当你学习"Rails方式"定义资源时,它们倾向于生成比你实际需要的更多的代码,并且会跑赢你的测试。
生成器通常只是一个工具,编辑生成的文件然后正确地调用生成器通常更容易、更快。