ruby rails g模型与cli上的关联和其他问题

g6ll5ycj  于 2023-02-12  发布在  Ruby
关注(0)|答案(1)|浏览(134)

我从ruby和rails开始,这是我第一天阅读指南。
我尝试用各种模型生成一个scaffold,例如GamePlatform,我尝试替换一个现有的过时的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连接?)

问题是如何在命令行上表示模型关联?

apeeds0o

apeeds0o1#

有没有可能通过cli定义与外键的关联?
是的。
您可以通过生成器定义belongs_to关联-因为它是 * this * models表上的数据库列实际支持的唯一关联。您不能通过生成器定义has_onehas_manyhas_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方式"定义资源时,它们倾向于生成比你实际需要的更多的代码,并且会跑赢你的测试。
生成器通常只是一个工具,编辑生成的文件然后正确地调用生成器通常更容易、更快。

相关问题