小编Bre*_*anC的帖子

Rails - 单个表单上多个模型的用户输入 - 如何

这基本上是一个嵌套的表单问题,尽管只有一个属于父模型的字段.我的数据输入表单收集模型的数据 - 但是我还需要收集一个实际进入将使用详细记录创建的父记录的数据元素/值(UserID).

AFAIK Rails希望每个表单字段都映射到一个模型,我需要创建一个我将单独使用的未绑定数据输入字段.

如何覆盖此默认行为并创建"自由格式/未绑定字段"?

TIA,BC

ruby-on-rails insert-update nested-forms

16
推荐指数
2
解决办法
1万
查看次数

Rails的Active Record可以处理SQL聚合查询吗?

刚刚开始学习活动记录,我想知道如何从涉及SQL聚合查询的多个表中最佳地检索数据.

在以下示例中(来自医疗应用程序)我正在为每位患者寻找各种类型的最新事件(例如,上次访问,最后一次实验室测试等).正如您从下面的SQL查询中看到的,我正在寻找分组查询中的max(date)值.我使用find_by_sql来执行此操作 - 但是我想看看如何在不使用find_by_sql的情况下执行此操作.

IOW - 如何使用纯ActiveRecord方法获取所需数据.下面是我正在测试的表和类定义:

通过Sql查找以检索每种类型的最新条目 - 请注意这里的'max(event_date)'

strsql = "select  p.lname, e.patient_id, e.event_type, max(e.event_date) as event_date 
     from events e   
         inner join patients p on e.patient_id = p.id
         group by p.lname, e.patient_id, e.event_type"
Run Code Online (Sandbox Code Playgroud)

这是示例sql查询结果:

lname, patient_id, event_type, latest
'Hunt', 3, 'Labtest', '2003-05-01 00:00:00'
'Hunt', 3, 'Visit', '2003-03-01 00:00:00'
'Seifer', 2, 'Labtest', '2002-05-01 00:00:00'
'Seifer', 2, 'Visit', '2002-03-01 00:00:00'

Table Relationships are:
Tables ---> Patients --> Events
                               --> visits
                               --> labtests
                               --> ... other
patients
      t.string :lname
      t.date :dob …

sql activerecord aggregate ruby-on-rails

9
推荐指数
1
解决办法
6438
查看次数

迭代F#中的嵌套序列 - 如何?

我可以在F#中定义一个简单的列表,如下所示,并使用以下代码迭代它:

let ar = [0;1;2;3]
ar |> Seq.iter (fun x -> printfn "Ar: %A" x)
Run Code Online (Sandbox Code Playgroud)

现在考虑一个嵌套序列如下:

let ar1 = [1;2;3;4]
let ar2 = [5;6;7;8]
let nested_array = [ar1; ar2]
Run Code Online (Sandbox Code Playgroud)

如何对此进行迭代 - 以下代码出现错误:

'lambda表达式中的意外中缀运算符'

我在这里要做的是迭代外部序列并将其转发到第二个迭代器,然后让我访问内部数组的内容.

nested_array |>
Seq.iter (fun x -> |> 
                    Seq.iter  (fun y ->
                    printfn "Ar: %A" y))
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么 - 我怀疑语法问题或(更严重/可能)缺乏F#/ FP理解.

iteration f# nested sequence

3
推荐指数
1
解决办法
1581
查看次数

将字典键序列转换为集合

以下代码列出了在字典序列中找到的一组键(每个字典基本上是数据库中的一行)。(我想将键转换为一组,这样我就可以比较 2 个 db 表)

for seqitem in tblseq do
    let keyset = seqitem.Keys |> Set.ofSeq    // works correctly
    printfn ">>> List: %A; Item Type: %A" keyset
Run Code Online (Sandbox Code Playgroud)

而不是打印键集,但是我想从函数中返回它,但是我在类型推断方面遇到了问题。尝试了以下但它不起作用;

我想要做的是将这些值作为列表数组返回(而不是打印它们)

let get_keyset tblseq = 
                tblseq |> Seq.iter (fun x ->  
                       x.Keys |> Set.ofSeq                   
                     ) 
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

f# dictionary key set sequence

2
推荐指数
1
解决办法
2625
查看次数