gpt4 book ai didi

ruby-on-rails - 事件管理员嵌套关联

转载 作者:行者123 更新时间:2023-12-01 01:13:56 26 4
gpt4 key购买 nike

所以我的程序中有以下模型:

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 来管理这些资源。我的 groups.rb admin 文件夹中的文件如下所示:
ActiveAdmin.register Group do
.
.
belongs_to :user, :optional => true
.
.
end

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

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

最佳答案

你有没有考虑删除

belongs_to

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

关于ruby-on-rails - 事件管理员嵌套关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com