Ruby on rails 活动管理嵌套关联

Ruby on rails 活动管理嵌套关联,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,因此,我的程序中有以下模型: class User < ActiveRecord::Base has_many :group_members has_many :groups, through: :group_members class GroupMember < ActiveRecord::Base belongs_to :user belongs_to :group end class Group < ActiveRecord::Base has_

因此,我的程序中有以下模型:

class User < ActiveRecord::Base
  has_many :group_members
  has_many :groups, through: :group_members 

class GroupMember < ActiveRecord::Base
  belongs_to :user
  belongs_to :group
end

class Group < ActiveRecord::Base
  has_many :group_members
  has_many :users, through: :group_members
end
问题是,组本身就是一种资源-管理员可以通过访问
/admin/groups
路由来管理组-但它也是用户的资源,我可以通过访问
/admin/users/:user\u id/groups
路由来查看用户组。但是,当我试图通过访问
/admin/users/:user_id/groups/new
页面并填写表单为该用户创建新组时,我收到一个错误:

ActiveRecord::RecordNotFound in Admin::GroupsController#show
Couldn't find Group with id=13 [WHERE `group_members`.`user_id` = 2]
用户id对应于我当前登录的用户,并且是正确的,而组id=13对应于新创建的组的id(它正确地保存在数据库中),但是未创建
group\u members
表中的关联。事实上,这甚至不是我在这里想要实现的目标:理想的场景是检索组列表并在新页面中显示,这样就不会在此页面中创建新的
——仅
组成员


在这种情况下,我该如何处理?提前谢谢

您是否考虑过删除

belongs_to
组寄存器块中的声明?这个aa dsl语句提供给您的接口嵌套看起来不错,并提供了一个点击路径,但最终它只是数据(模型)上的一个装饰。在用户模型中使用过滤器和作用域也可以。如果你真的需要aa的归属,你必须创建自定义编辑屏幕和自定义重定向。祝你好运

belongs_to