Rails mongoid - 访问另一个表中存在user_id的用户

时间:2017-05-30 18:26:11

标签: ruby-on-rails mongoid

我有一个有很多用户的应用,可以创建很多旅行,他们可以邀请朋友参加旅行。

以下是模型:

class Travel
  include Mongoid::Document
  include Mongoid::Timestamps

  belongs_to :user

  embeds_many :participants
  accepts_nested_attributes_for :participants
end

class Participant
  include Mongoid::Document
  include Mongoid::Timestamps

  # relations
  embedded_in :travel, :inverse_of => :participants

end

当我查看我的数据库时,我对参与者有这样的结果: screen DB

它嵌入旅行中。 现在,我想访问用户,感谢您在旅行页面上看到的数据库中的user_id,但我不知道为了实现这一点我必须写什么请求。我想访问参与者。

我是否必须使用.where()User.where(:id.in => ...).find_by() ..?

1 个答案:

答案 0 :(得分:1)

由于TravelUser已关联(belongs_to),您可以直接致电..

Travel.last.user

或者

User.where(id: Travel.participants.pluck(:user_id))