小编Sam*_*ron的帖子

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
查看次数

如何让.NET保存此图像?

我有这个JPEG图像,在Picasa,Photoshop,网络浏览器等中打开很好,但在.NET中它只是拒绝工作.

 Image image = Image.FromFile(@"myimage.jpg");
 image.Save(@"myimage2.jpg");
 // ExternalException - A generic error occurred in GDI+.
Run Code Online (Sandbox Code Playgroud)

有没有办法在.NET中恢复它,所以我可以使用它(我需要调整它),而不是在源头修复问题?

完整的异常细节:

source: System.Drawing
type: System.Runtime.InteropServices.ExternalException
message: A generic error occurred in GDI+.
stack trace:
at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
   at System.Drawing.Image.Save(String filename, ImageFormat format)
   at System.Drawing.Image.Save(String filename)
   at ConsoleApplication20.Program.Main(String[] args) in C:\Users\sam\Desktop\S
ource\ConsoleApplication20\ConsoleApplication20\Program.cs:line 16

此问题可在Windows 7上重现.

.net c# image

9
推荐指数
2
解决办法
6901
查看次数

使用密钥的可逆混洗算法

我如何在C#中编写可逆混洗算法,该算法使用密钥进行混洗并可以反转为原始状态?

例如,我有一个字符串:"Hello world",我怎么能将它洗牌以便以后我能够将洗牌后的字符串反转回"Hello world".

c# string algorithm shuffle key

9
推荐指数
2
解决办法
5854
查看次数

可以在Firefox中将"粘贴图像"支持破解成textarea吗?

我正在阅读这篇关于Chrome和Firefox中图像粘贴的文章.

回顾一下,Firefox不提供有关粘贴图像的任何信息,"粘贴"事件处理程序获取一个空clipboardData对象.

要解决这个问题,可以div在DOM中放置一个看不见的contenteditable ,并始终保持焦点,当粘贴东西时,它会触发超时,检查不可见div的内容以获取图像句柄.

有没有什么方法可以使用魔法iframe来破解东西,或者什么不是,没有用可疑的div替换textarea,以获得Firefox中的粘贴图像支持?

(注意:Java和Flash解决方案是不可能的)

javascript firefox

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

如何添加"每个"以在车把中工作

Ember正在迁移到非上下文切换 #each助手.对于兼容性部件,我需要从原始把手做同样的事情.

然而,琐碎的尝试失败了

var f = Handlebars.compile("{{#each numbers}}{{this}}{{/each}}");
console.log(f({numbers: [1,2,3]}));
// works

var f2 = Handlebars.compile("{{#each number in numbers}}{{number}}{{/each}}");
console.log(f2({numbers: [1,2,3]}));
// fails
Run Code Online (Sandbox Code Playgroud)

我如何{{#each number in numbers}}在原始车把2.0中工作?

编辑

在这里添加了一个赏金,用于基于https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js的把手扩展,它们为我们提供了支持.很明显它没有内置于车把.同样清楚的是Ember能够扩展这一点.

javascript handlebars.js ember.js

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

续集与ActiveRecord一起陷入困境?

我正在考虑将Sequel用于我的一些毛茸茸的SQL,我发现在Active Record中很难制作.

在同一个项目中使用Sequel和ActiveRecord时,有什么需要注意的吗?(除了在续集等中没有AR验证的明显的...)

ruby activerecord ruby-on-rails sequel

8
推荐指数
1
解决办法
3140
查看次数

升级到.NET 4后,为什么GetVirtualPath失败

我定义了以下路线:

 var route = new Route("{id}/{a}/{b}", new MvcRouteHandler());
 route.Defaults = new RouteValueDictionary(new { controller = "Home", action = "Show" });
 route.Defaults.Add("a", "");
 route.Defaults.Add("b", "");
Run Code Online (Sandbox Code Playgroud)

以下控制器代码:

public ActionResult Show(int id)
{
    RouteValueDictionary routeValues = new RouteValueDictionary();
    routeValues["Controller"] = "Home";
    routeValues["Action"] = "Show";
    routeValues["id"] = 1;
    var requestContext = new RequestContext(this.HttpContext, RouteData);
    var rv = route.GetVirtualPath(requestContext, routeValues);
    // when targetting .NET 4 rv is null, when its 3.5 it is "/1"

 }
Run Code Online (Sandbox Code Playgroud)

为什么这段代码在.NET 3.5中返回路由而不在.NET 4.0中?

.net-4.0 .net-3.5 asp.net-mvc-2

8
推荐指数
1
解决办法
272
查看次数

SQL标准是否指定约束验证的顺序并触发触发?

我很好奇我是否可以依赖任何特定的验证NOT NULL, FOREIGN KEY, UNIQUE, CHECK约束和BEFORE触发器的顺序.

根据经验,我知道MySQL首先检查NOT NULL,然后启动BEFORE触发器,然后检查UNIQUE约束.Oracle NOT NULLBEFORE触发后检查(我相信SQLServer也会这样做,但不记得).标准是否对订单有所说明,或者完全取决于数据库供应商?

sql sql-standards

8
推荐指数
1
解决办法
1175
查看次数

在布局执行和发布正文之前,ASP.NET MVC中是否存在挂钩?

当ASP.NET MVC执行包含Razor的页面时,它将首先运行主体,例如RenderBody方法,然后它运行布局的代码并将其编织在一起.

这篇博文中记录了这一点:

System.Web.Mvc.RazorView.RenderView()System.Web.WebPages.WebPageBase.ExecutePageHierarchy()//非虚拟版本System.Web.WebPages.WebPageBase.PushContext()
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()//virtual version this.Execute()//从我们的View
System.Web.WebPages.WebPageBase.PopContext
RenderSurrounding(virtualPath,body)生成的代码; //渲染布局,类似于View的渲染过程,基本上你可以有嵌套的Layout VerifyRenderdBodyOrSetions();

我想在我的视图和布局中添加代码,以跟踪页面中的实际逻辑位置.

有没有办法可以 RenderSurrounding 之前 RenderBody完成执行之后连接一个方法来运行?

c# razor asp.net-mvc-3

8
推荐指数
1
解决办法
3124
查看次数

是否有任何解决方法可以避免SFSafariViewController隐藏固定位置标头?

SFSafariViewController有这个在Safari中无法重现的错误.

通常它会遮挡站点名称/完成铬后面的固定面板的顶部.

这种情况发生在内部,它在页面的实际高度和缩小的标题铬的大小之间失去同步.

好小头

正确的小标题

糟糕的小标题(SF chrome应该很小但很大)

伤心

好大头

正确的大头

此问题在其他地方报道:https://meta.stackexchange.com/questions/279792/new-ios-chat-headers-occasionally-hide-behind-safari-navigation-controls-when-vi并且是iOS中的一个问题9及以上(12.0.1中仍是一个问题)

要重现使用SFViewController创建一个虚拟应用程序并导航到具有固定标题的站点,如bbs.boingboing.net,然后单击并浏览一些主题.

由于这个bug现在已经有几年了,我想知道是否有某种解决方法不涉及在标题顶部添加一般填充?

最小的复制品

使用此HTML创建一个页面

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
      body {
        height: 2000px;
        background-color: green;
      }
      header {
        width: 100%;
        height: 50px;
        background-color: red;
        color: white;
        position: fixed;
        top: 0;
      }
    </style>
  </head>
  <body>
    <header>Hello</header>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在SafariViewController中打开(在线托管它,然后通过电子邮件发送链接,iOS中的gmail应用程序使用Safari View Controller,Discourse app)

快速滚动到底部

标题的一半是隐藏的.

顶部为0时,插入没有区别,封面视口属性没有差异.

iphone ios sfsafariviewcontroller

8
推荐指数
1
解决办法
1189
查看次数