刚刚开始学习活动记录,我想知道如何从涉及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 … 我有这个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上重现.
我如何在C#中编写可逆混洗算法,该算法使用密钥进行混洗并可以反转为原始状态?
例如,我有一个字符串:"Hello world",我怎么能将它洗牌以便以后我能够将洗牌后的字符串反转回"Hello world".
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能够扩展这一点.
我正在考虑将Sequel用于我的一些毛茸茸的SQL,我发现在Active Record中很难制作.
在同一个项目中使用Sequel和ActiveRecord时,有什么需要注意的吗?(除了在续集等中没有AR验证的明显的...)
我定义了以下路线:
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中?
我很好奇我是否可以依赖任何特定的验证NOT NULL, FOREIGN KEY, UNIQUE, CHECK约束和BEFORE触发器的顺序.
根据经验,我知道MySQL首先检查NOT NULL,然后启动BEFORE触发器,然后检查UNIQUE约束.Oracle NOT NULL在BEFORE触发后检查(我相信SQLServer也会这样做,但不记得).标准是否对订单有所说明,或者完全取决于数据库供应商?
当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完成执行之后连接一个方法来运行?
SFSafariViewController有这个在Safari中无法重现的错误.
通常它会遮挡站点名称/完成铬后面的固定面板的顶部.
这种情况发生在内部,它在页面的实际高度和缩小的标题铬的大小之间失去同步.
此问题在其他地方报道: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时,插入没有区别,封面视口属性没有差异.