我想知道counter_cache是否可以在单表继承中工作.
对于这些型号:
class User
has_many :questions
end
class Question
belongs_to :user, :counter_cache => true
end
class SimpleQuestion < Question
end
class ComplexQuestion < Question
end
Run Code Online (Sandbox Code Playgroud)
那么下面的计数器会起作用吗?
create_table(:users) do |t|
t.integer :questions_count
t.integer :simple_questions_count
t.integer :complex_questions_count
end
Run Code Online (Sandbox Code Playgroud)
questions_count工作simple_questions_count和complex_questions_count哪一个?我猜第3次,但我还想要4次.如果不是4,我怎么做4工作?
===更新===
这是一个例子:
id, user_id, question_content, type
1, 3, something, SimpleQuestion
2, 3, something, SimpleQuestion
3, 3, something, ComplexQuestion
Run Code Online (Sandbox Code Playgroud)
所以现在我想:
user.questions_count # => 3
user.simple_questions_count # => 2
user.complex_questions_count # => 1
Run Code Online (Sandbox Code Playgroud)
我的问题是,什么是基本行为,:counter_cache => …
ruby-on-rails has-many single-table-inheritance counter-cache ruby-on-rails-3
我想转换一个for循环,它将迭代器的每次递增增加2,使用TPL进入Parallel For循环.数据不依赖于顺序或以任何方式受约束,但我只想处理源数组的每个其他元素中的数据(在下面的代码中是_Datalist),因此需要增加2.
我的For循环:
for (int i = 1; i < _DataList.Length - 1; i += 2)
{
// Do work for _DataList[i]
}
Run Code Online (Sandbox Code Playgroud)
是否有可能告诉并行循环我想要增加2而不是1?
这是并行循环,但显然我每次迭代只增加1:
Task.Factory.StartNew(() =>
Parallel.For(1, _DataList.Length, i =>
{
// do work for _DataList[i]
})
);
Run Code Online (Sandbox Code Playgroud)
我可以告诉内部循环体忽略i的奇数值,但这看起来很麻烦 - 有没有办法在循环初始化中做某种方式?
Grails coberatura插件正在BuildConfig.groovy上进行代码覆盖.我已经在BuildConfiguration上尝试了所有这些配置,以从代码覆盖中排除BuildConfiguration已经尝试过所有这些.
coverage {
exclusions = [
'*/BuildConfig*',
'BuildConfig*',
"BuildConfig*",
'BuildConfig',
'BuildConfig*'
]
}
Run Code Online (Sandbox Code Playgroud) 我想更多地研究完整的数据设计模式.具体而言,存储,处理,缓存和检索数据的不同技术组合.换句话说,看看在facebook等大型系统中使用了多少组件.
据我所知,我们有数据库类别的RBMS和NoSQL风格.但是,许多其他技术(永久数据存储之外)对数据的实际使用至关重要 - 例如memcached.然而,我无法找到应该用于充分利用所有架构的总体设计模式.
有没有人有关于整个包装设计模式的文章的链接,这些模式可以用不同的数据库系统组件混合来完成?
这不是数据库规范化等数据库特定最佳实践的问题.关于如何最好地使用某种技术也不是一个问题.
可以使用哪些设计模式正确地混合奇怪的技术,以利用每个优势来设计完整,高效的系统?从缓存,到CRUD,到扩展,再到数据完整性.
例如,在小型共享主机上,我可以运行像SQLite这样的博客,因为几乎所有读取都没有写入.另一方面,有些项目是低端VPS,我可以使用MySQL + APC缓存(毕竟只有一台服务器),在高读/写时具有惊人的性能.有超过一个VPS memcached是冠军!
我也是MongoDB和PostgreSQL的粉丝.但是,MongoDB不使用任何形式的RAM限制,因此您应该拥有一个单独的服务器.然而,在MongoDB中存储大型对象并将剩余的重要数据留在PostgreSQL上是双赢的.
但是,这些都是非常基本的设计选择.大规模应用程序设计具有更多抽象,以促进扩展和减少故障点.
所以我想开始编写一个PowerShell脚本.我想从小开始,只需编写一个脚本,将本地文件夹作为驱动器.很简单.我在使用旧的DOS命令工具之前完成了它.
所以我想写的脚本是:
subst d: G:\CER
Run Code Online (Sandbox Code Playgroud)
好的,所以我尝试按下"播放"按钮(即F5)在Powershell ISE中执行脚本
那我该怎么办?
无法加载文件G:\ CER\Make_Stage.ps1,因为在此系统上禁用了脚本的执行.有关详细信息,请参阅"get-help about_signing".在行:0 char:0
这是多么愚蠢,禁用 PowerShell脚本的开箱即用!即默认!简直难以置信,默认情况下这个新工具根本无法正常工作.Powershell必须是最愚蠢的脚本外壳.
所以显然我必须在某处注册一些东西(希望不是MS).如果有人对如何解决这个问题有答案,我会很感激.
lambda表示法
x => x.MyProperty
Run Code Online (Sandbox Code Playgroud)
一些人很容易混淆大于或等于.即
if (x => y) ...
Run Code Online (Sandbox Code Playgroud)
问题是:编译器是否混淆了这些?即,如果采用大于或等于的约定总是编码为:
if (x >= y) ...
Run Code Online (Sandbox Code Playgroud)
我想编译器可以根据上下文来区分这两者,但是什么是"最佳实践"?
关于SO的问题
有点表明很容易弄错.
编辑:
鉴于在这场风暴中酝酿的小风暴,以下内容可能会澄清.
我问了这个问题,因为我回答了一个问题,那个人错误地输入了lambda表示法.我指出了他的错字,他接受了我的回答.上面的问题有一个链接.
然后这个问题让我感到困惑.我一直使用> =没有很好的理由,但我确信我看过使用其他符号的代码.有时候,你有一些假设,你不会想到质疑.它可能来自我的VBA时代,但是我仍然坚信,我已经看到了编译,运行和使用=>的代码,而不是比较.就这样吧.我很抱歉没有"解雇VS",但我一直在Sitefinity工作一整天没有安装VS的办公室.没有任何借口,我授予你.
但请注意,C#中的lambda表达式只有... .NET 2?还是.NET 3.5.鉴于我从1.0版本开始使用C#,问题是错误的,但不是那么荒谬.
我也认为SO的严格规则很重要,因为它们产生了原始的问答.但是有不同的方法来应用这些规则.自9月中旬以来,我一直认真使用SO,所以我认为最好在不好的问题上发出警告,而不是在第一次机会时猛拉膝盖.这就是SO所鼓励的:发表评论而不仅仅是触发快乐的标记.你让提问者有机会发现他们的错误并从系统中删除一个毫无意义的问题.因为一旦答案和投票涌入,问题就无法被删除.
咆哮结束.
我确信必须已经有很多工具"在那里"才能做到这一点,但我没有太多运气跟踪它们.我非常感谢你的帮助.
我们有相当大的MySQL数据库,有许多表和一些复杂的表关系通过外键约束强制执行.我们需要的是,用数据和表的子集创建另一个较小的数据库.
例如,我有一个课程时间表,我想创建只有2门课程和入伍学生的数据库修订版.基本上,我们希望我输入"根条件"和我们想要的表,并且该工具应该创建具有所有所需表的一致转储或数据库.
我花了一些时间搜索互联网,但我发现只有Datamaker,它是专有的,甚至没有试用版下载,Jailer,看起来很好,但我发现它有点难以使用...
我非常感谢其他一些可以做到这一点的工具的提示.
我不确定我是否已经解释得很好 - 如果我没有,请告诉我:-)
我的应用程序和Tomcat 7存在很大问题.我的应用程序需要将会话cookie设置为"/"路径而不是"/ context"路径.在tomcat 6中,它是向Connector添加另一个属性的问题(emptySessionPath ="true"),Tomcat 7无法识别此事.我知道Servlet 3.0规范允许在每个上下文的基础上配置它,但我无法使它与Tomcat 7一起使用.它仍然添加了上下文路径而不是"/".
我将非常感谢收到如何做到这一点.
我无法确定Euclid最大公分母算法的时间复杂度.这个伪代码算法是:
function gcd(a, b)
while b ? 0
t := b
b := a mod b
a := t
return a
Run Code Online (Sandbox Code Playgroud)
它似乎取决于a和b.我的想法是时间复杂度是O(a%b).那是对的吗?有没有更好的方法来写这个?
我有一个sql DB表列,其中包含"0000-00-0000"格式的数据.例如:"8753-11-2010"
现在我需要将此值从"8753-11-2010"更改为"008753-0011-2010",即我需要在"8753"和"11"前面填充"00"我的意思是你可以调用的前两个字符串它.
请告诉我如何在sql server 2005中实现这一点.我需要这样做超过200行.
谢谢