Rails多个连接

时间:2014-07-20 23:23:44

标签: ruby-on-rails ruby activerecord ruby-on-rails-4

我有四种模式:遭遇,遭遇竞争,用户和生命类型

  • 遭遇Encounter Encounter Vitals商店
  • Encounter的Vitals和使用Vitals用户的用户有
  • 服用生命值Vital Types的用户是
  • 的不同类型
  • 可以采取的生命

遇到模特

has_many :encounter_vitals, foreign_key: "encounter_id"
...
Fields: ID, Date

遇到Vital的模型

belongs_to :encounter
belongs_to :vital_type
belongs_to :user
...
Fields: ID, User ID, Encounter ID, Vital Type ID, Value

用户模型

has_many :encounters, foreign_key: "user_id"
has_many :encounter_vitals, foreign_key: "user_id"
...
Fields: ID, First Name, Last Name

生命类型模型

has_many :encounter_vitals, foreign_key: "vital_type_id"
...
Fields: ID, Name

我如何获得特定遭遇的所有Encounter Vital,其中显示了生命的名称,生命的价值以及进入生命的用户?

我尝试过以下但似乎无法正常工作

@encounter = Encounter.find(1)
@encounter.joins(:encounter_vitals => {:vital_type, :user})

1 个答案:

答案 0 :(得分:0)

第二行应该有一个数组而不是一个哈希,请尝试这样:

@encounter = Encounter.joins(:encounter_vitals => [:vital_type, :user]).find(1)