【发布时间】:2016-05-08 07:36:37
【问题描述】:
我的目标是在房间、人员和工作班次之间建立一种关系。所以我的续集字符串看起来像这样:
x = DB[:raum].join_table(:left, DB[:platz], :rid => :id)
.join_table(:left, DB[:patient_behandlungs_link], :platz_id => :id)
.join_table(:left, DB[:patienten], :id => :patienten_id)
.join_table(:left, DB[:behandlungsverfahren], :id => :t2__behandlungsverfahren_id)
.join_table(:left, DB[:dialysezeit], :id => :t2__dialysezeit_id)
.join_table(:left, DB[:nadeln], :id => :t2__dialysenadel_id)
.join_table(:left, DB[:dialysatorzugang], :id => :t2__dialysatorzugang_id)
.where("raumnummer = ?", raumid.to_i)
它的工作原理是这样的,但在结果表中还有一个用于班次 ID 的字段。在这种状态下,它不会区分该人在哪个班次工作。如果我进行一次 foreach 并将值推出,我会得到空的 nil 字段,里面没有人,这是我想要的,我会从所有轮班中得到房间里的人。
例如,如果我创建一个.filter(:schicht_id => 1),那么我就会失去我的 nil 值。我需要他们将新人分配到空位,所以我尝试了(:schicht_id => 1).or(:schicht_id => nil) 和类似的东西,但我没有得到我想要的结果
【问题讨论】:
-
当你用英文命名你的类和方法时,你的代码会更容易阅读和理解。 Ruby 的方法名称和语法允许编写非常易于理解的代码。不幸的是,当您混合不同的语言时,这不起作用,读者必须经常切换语言上下文......
-
我在您的加入中找不到
schicht(=工作班次)。那么你在哪里定义schicht_id的过滤器?
标签: mysql ruby database sequel