所以我有以下型號在我的計劃:主動聯繫嵌套協會
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
文件中的管理文件夾看起來是這樣的:
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對應於我的當前登錄的用戶,這是正確的,而組ID = 13對應於新創建的組的ID(它正確保存在數據庫中),但是group_members
表中的關聯未創建。實際上,這還不是我想要達到的目標:理想的情況是檢索組列表並將其顯示在新頁面中,以免在此頁面中創建新的groups
- 僅限group_members
。
我如何在這種情況下繼續?提前致謝!