试图弄清楚为什么ActiveAdmin会让我失望,感谢您的帮助。
编辑:事实证明我遇到了x-y problem的情况。我向SO社区道歉......
我认为has_many :venue_rps
关系是罪魁祸首,但我后来发现这是另一个问题。请在下面查看此问题的更新版本:
我的模特:
class Venue < ActiveRecord::Base
belongs_to :nightclub
has_one :nightclub_boss, through: :nightclub
belongs_to :rp_boss
has_many :memberships
has_many :rps, through: :memberships
belongs_to :captain
has_many :reservations
has_many :payments, through: :reservations
has_many :cutoffs
has_many :cutoff_payments, through: :cutoff
has_many :favorites
has_many :schedules
end
class Membership < ActiveRecord::Base
belongs_to :venue, dependent: :destroy
belongs_to :rp, dependent: :destroy
end
class Rp < User
has_many :memberships
has_many :venues, through: :memberships
has_many :nightclubs, through: :venues
has_many :nightclub_bosses, through: :nightclubs
has_many :rp_bosses, through: :venues
has_many :captains, through: :venues
has_many :reservations
has_many :payments, through: :reservations
end
编辑:请阅读下面我之前的解释,否则我通过执行以下操作来解决此问题:
我将联接表模型从venue_rp
更改为membership
。这是我的迁移:
class CreateMemberships < ActiveRecord::Migration
def change
create_join_table :rps, :venues, table_name: :memberships do |t|
t.index [:rp_id, :venue_id]
t.index [:venue_id, :rp_id]
end
end
end
由于这不起作用,我四处寻找并运行调试器以查找错误。我发现我在场地中断了与关闭点的关系:
我有:
has_many :cutoffs
has_many :cutoff_payments, through: :cutoff
需要复数:
has_many :cutoffs
has_many :cutoff_payments, through: :cutoff*s*
之后,例外消失了。
如果您遇到activeadmin中的另一个问题,例如:
undefined method `memberships_id_eq' for Ransack::Search<class: Venue, base: Grouping <combinator: and>>:Ransack::Search
只需移除membership
has_many through:
模型的搜索过滤器即可。对于这个用例,没有必要按此过滤我的信息,因此我只是删除了它。
[OLD]说明:我需要将多个Rps分配给某个Venue,并将许多Rps分配给某个Rp,所以我使用了一个由连接表支持的连接模型(venue_rp
)来建模这些信息。
到目前为止一切顺利,它就像是在rails控制台上的魅力。
但是我需要为管理员用户提供CRUD数据表单,所以我采用了ActiveAdmin方式。所以我继续注册我的Venue模型:
ActiveAdmin.register Venue do
scope_to :current_user, if: proc{ current_user.is_nightclubboss? }
menu priority: 3
end
想法是superadmins将能够看到应用程序中的所有信息,而夜总会老板只会看到与他们有关的信息。
到目前为止一切顺利,我期待我会在场地中看到activeadmin的默认索引和表单(Sucursales在下面的屏幕截图中表示场地):
但是当我点击activeadmin菜单中的Venues条目时,我遇到了反思问题:
我试过的是重写关联,到目前为止没有骰子。我做错了吗?
答案 0 :(得分:0)
我遇到了x-y问题。
问题与这个问题无关。