加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Active Admin嵌套关联

发布时间:2020-12-17 02:32:54 所属栏目:百科 来源:网络整理
导读:所以我的程序中有以下模型: class User ActiveRecord::Base has_many :group_members has_many :groups,through: :group_members class GroupMember ActiveRecord::Base belongs_to :user belongs_to :groupendclass Group ActiveRecord::Base has_many :gr
所以我的程序中有以下模型:

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

我正在使用ActiveAdmin来管理这些资源. admin文件夹中的groups.rb文件如下所示:

ActiveAdmin.register Group do
.
.
  belongs_to :user,:optional => true
.
.
end

问题是,Group本身就是一个资源 – 管理员可以通过转到/ admin / groups路由来管理组 – 但它也是用户的资源,我可以通过访问/ admin来查看用户组/ users /:user_id / groups route.但是,当我尝试通过访问/ 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对应于我当前登录的用户并且它是正确的,而group id = 13对应于新创建的组的id(它正确保存在数据库中),但不创建group_members表中的关联.实际上,这甚至不是我在这里想要实现的目标:理想的情况是检索组列表并在新页面中显示它,以便不在此页面中创建新组 – 只有group_members.

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

解决方法

你有没有考虑过删除

belongs_to

集团登记册中的声明?这个aa dsl语句为您提供的接口嵌套,看起来不错,并为您提供了一个单击路径,但最后它只是数据(模型)上的装饰.在用户模型中使用过滤器和范围也可以.如果你真的需要aa的belongs_to,你将不得不创建自定义编辑屏幕和自定义重定向.祝好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读