【问题标题】:nested resources rails has and belongs to many嵌套资源 rails 拥有并属于许多
【发布时间】:2015-06-09 05:04:40
【问题描述】:

对于通用标题,我很抱歉,但我现在不知道如何更好地表达它。我终于有时间重新开始学习,并在构建模型时遇到了这个问题:

基本上我有一个包含两个嵌套资源的父资源。父资源可以有多个子资源,每个子资源可以有一个父资源。这部分工作正常。当我想在两个子资源之间建立 has_and_belongs_to_many 关系时,困难就来了。我不确定如何实现这一点,这样当我创建一个新的 Child 1 时,我可以将它与多个现有的 Child 2 相关联。

想象一下,我有一个 User、Dog 和 Walk 模型。用户是父母,但每只狗都会进行多次散步,每次散步可能有很多狗。

我一直在寻找这部分的任何教程,但运气不佳。有人可以指出潜在解决方案的方向吗?

【问题讨论】:

  • 这是多对多关系,为此 ypu 可以使用 has_many through 或 has_and_belongs_to_many
  • 是的,我正在尝试为此使用 has_and_belongs_to_many,但鉴于狗和步行都属于用户,我正在尝试解决如何创建新的步行实例。此外,在新的步行形式中,这对用户来说会如何?如何让用户选择添加多条狗来散步等

标签: ruby-on-rails has-and-belongs-to-many nested-resources


【解决方案1】:

狗.rb

has_and_belongs_to_many :walks

walk.rb

has_and_belongs_to_many :dogs

对象的创建:

@walk = Walk.last
@dog = Dog.last
@walk.dogs << @dog

对于此关联,您将拥有一个作为 dogs_walks 的连接表,它没有模型,并且具有 dog_id、walk_id 等属性,并且它没有 id 作为主键

【讨论】:

  • 感谢最后一行是我所需要的。最后一件事:我如何让用户填写表格来调用最后一行?例如,我希望用户决定将哪个 dog_id 分配给给定的 walk_id。我怎么能把它放在一个表格中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多