如何在Rails 3中正确关联深层嵌套表单?

时间:2012-04-06 05:45:02

标签: ruby-on-rails forms associations

我一直在看Ryan的截屏视频:

http://railscasts.com/episodes/196-nested-model-form-part-1

我有类似但不同的问题,希望有人可以提供帮助。


我有以下四种模式需要(至少)注册:

  • 帐户
  • 公司
  • 地址
  • 用户

注册时,我希望公司地址用户分别与帐户相关联直接。

此外,我希望用户公司相关联,地址公司相关联

注意:每个都有一个外键: account_id - 这实际上是一个拥有单个数据库的多租户系统。


我的同事目前的安排如下:

帐户

has_many:公司

has_many:用户

has_many:地址

(将来,其他模型将使用公司和地址模型,这就是为什么帐户有很多这些模型)

用户

belongs_to:account

belongs_to:company

公司

belongs_to:account

has_many:用户

has_many:地址

地址

belongs_to:account

belongs_to:company


我一直在模型中使用 accepts_nested_attributes_for 方法,在视图中使用 fields_for 方法,但只能使用以纯粹嵌套的方式关联事物。

换句话说,用户 公司相关联,与<相关联强>帐户

我需要每个模型帐户相关联。 (当然,帐户本身除外)

有办法做到这一点吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我觉得你在某些地方感到困惑。

  • 帐户有很多公司
  • 公司有很多用户
  • 公司属于帐户
  • 帐户用户所属_to公司
  • 用户通过公司所属的帐户或在用户
  • 中创建帐户ID

在视图中,您可以创建表单公司,然后为帐户和内部帐户创建fields_for为用户创建fields_。

我认为这会解决你的目的。 不要忘记在公司和帐户

中添加accept_nesetd_attributes