【发布时间】:2013-02-22 16:31:27
【问题描述】:
我的 rails 3.2 应用程序中有以下 4 个资源。
- 车库管理员
- 超级管理员
- 车库
- 注册车库
现在我的应用程序的一部分必须像这样工作,
- SuperAdmin 可以通过资源 RegisterGarage 创建 GarageAdmin。
- 一个 GarageAdmin has_one Garage 和一个 Garage belongs_to GarageAdmin。
-
RegisterGarage 存储一些其他信息供管理员使用。
现在我想要完成的是,当 SuperAdmin 创建 GarageAdmin 时,与该 GarageAdmin 对应的 Garage 也将仅通过该 RegisterGarage 资源同时创建。
我在 RegisterGarage 资源中调用了两个回调:
-
before_create :pass。这将为 GarageAdmin 生成一个随机密码 -
before_save :garage。这将为刚刚创建的 GarageAdmin 创建一个新的 Garage,并为其分配一个名称。
到目前为止,如果我删除 before_save :garage,我就可以创建 GarageAdmin。但是当我在 RegisterGarage 中使用 before_save :garage 时,我收到错误 SystemStackError: stack level too deep。
如果我以正确的方式做事,谁能指导我,并指导我如何实施。
我正在使用 mongoid。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 mongoid