我目前正在使用Active Admin作为我的Rails应用的管理员端。我也使用Mongoid连接到MongoDB。
在本期中,我有团队和球员。玩家被分配到一个团队。在我的主动管理表单中,我有:
f.input :team_id, :as => :select, :collection => Team.all,:member_label => (:name), :member_value => :id
问题是团队对象的id是BSON :: Object(id)而不仅仅是id。 Active Admin不会将id保存为对象ID。只要我能够按球队拉出球员,这很好。
我正在尝试
players = Player.where(:team_id => @team.id.to_s)
这不起作用。
如果teamA.id = BSON :: Object(“asdf1234”) 和playerA.team_id =“asdf1234”
我需要以某种方式发出mongoid查询以拉出拥有team_id =“asdf1234”的玩家
答案 0 :(得分:1)
我认为ActiveAdmin仅适用于ActiveRecord,如果你想使用Mongoid,请改用: https://github.com/elia/activeadmin-mongoid
答案 1 :(得分:0)
在使用activeadmin-mongoid之前,您需要将所有主键/外键转换为使用BSON :: ObjectIds,而不是使用无效的普通数字。 我为此使用mongify。 http://mongify.com/