我想传递两个匿名函数作为jQuery的悬停的参数,如下所示:
$('element').hover(
function() {
// do stuff on mouseover
},
function() {
// do stuff on mouseout
}
);
Run Code Online (Sandbox Code Playgroud)
只用一个就很容易hover ->- 但是CoffeeScript中的两个正确语法是什么?我试过...hover ->,...hover( ->...等等,但没有任何东西让我得到上述结构.
就像这样,Rails从原始SQL中抽象出来让我感到沮丧.在MySQL中,我可以这样做:
UPDATE FROM tasks AS t
LEFT JOIN projects as p
ON t.project_id = p.id
SET t.invoice_id = 7
WHERE p.organization_id == 42
AND t.invoice_id IS NULL
Run Code Online (Sandbox Code Playgroud)
如何在Rails 3.0.1中以预先加载的方式执行此操作?我已经尝试了以下所有方法:
Tasks.joins(:project).where('projects.organization_id' => 42, :invoice_id => nil).update_all( :invoice_id => 7 )
Run Code Online (Sandbox Code Playgroud)
以及上述的所有变化.所有人都给出了错误或没有找到任何东西.
然后我试着用scope:
Task.scope :find => {:joins => :project, :conditions => ["projects.organization_id == ? AND invoice_id IS NULL", @organization.id] } do
Task.update_all :invoice_id => @invoice.id
end
Run Code Online (Sandbox Code Playgroud)
这个给了我错误undefined method 'to_sym' for #<Hash:0x1065c6438>.
我花了太多时间来处理这个问题,只是为了复制一个简单的SQL查询.请帮忙!
编辑:绕过n + 1的临时坏解决方案:
task_ids = Task.select('tasks.id').joins(:project).where('projects.organization_id' …Run Code Online (Sandbox Code Playgroud) 我可以创建一个块来提取哈希元素并将它们转换为局部变量,但我想知道本机方法是否已经存在.像这样的东西:
extract({ :foo => 'bar', :foo2 => 'bar2' })
puts foo # 'bar'
puts foo2 # 'bar2'
Run Code Online (Sandbox Code Playgroud)
请注意,密钥是私有的,并且范围需要保持在本地.
这应该很容易。在 MySQL 中我可以这样做:
select sum(column1*column2) as sum1 from table
Run Code Online (Sandbox Code Playgroud)
如何在 Rails 中使用 sqlite 执行此操作?我已经尝试使用 find_by_sql 与上面的确切查询,以及 find(:all, :select=>...) 和各种其他东西,但没有一个返回正确的值。大多数都是空白的,像这样:
[#<Element> ]
Run Code Online (Sandbox Code Playgroud)
我可以循环遍历,取出值,然后求和,但必须这样做似乎很荒谬。
有人能指出我明显缺少的东西吗?谢谢!
我注意到我的Javascript bookmarklet在某些网站上失败了,比如谷歌阅读器和谷歌搜索结果页面(在一些非谷歌网站上随机出现).看一下控制台,我可以看到,对于这些页面,单击bookmarklet并没有像往常那样将元素附加到头部/主体,而是创建了一个如下所示的新文档:
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
即使我将书签缩小到javascript:alert(window.location.href);它,也会创建这个空白页面并在其中运行书签,以便显示警报about:blank.在大多数网站上,不会创建此空白页面并显示正确的位置.
有人可以解释一下吗?这些沙盒外部网站是否将代码作为安全措施?
更新:我目前无法在Chrome 17.0.932.0 dev以外的浏览器上重现这一点.如果其他人可以在Chrome或其他方面重现这些结果,请与我们联系.
我试图在node.js应用程序中使用Mongoose分解我的RDBMS心态,并且可以使用一些指导来获得最佳实践.
一个简单的例子:假设有两个集合,组织和联系人.这是一对多的关系,他们都需要孤独.但是,在索引方法中,我想返回一个组织对象数组,每个组织对象都有一个成员联系对象数组.(后来我想返回一组联系人,每个联系人都有一个组织对象.)
在我看来,我误解了实现这一目标的最佳方法.这是我到目前为止看到的选项:
在组织文档中嵌入联系人及其ID.然后索引查询可以Organization.find({}, function(err, orgs) { orgs[n].contacts[n]...}).
缺点:需要大量额外存储空间,并且必须在更改"主"联系人文档时更新嵌入式联系人文档.
利用Mongoose的populate/DBRef结构在两个表中存储"外键"ID.然后查询可以是:Organization.find({}}.populate('contacts').run(...).
缺点:您必须在两侧存储密钥.
转到更传统的"外键"路线,只将组织ID存储在联系人文档中.查询组织文档,然后查询组织查询的回调中的所有联系人,将数据合并到一个对象中以返回. 缺点:多个查询和额外的处理开销(我相信我们必须独立地找到这些组织的组织和联系人,然后遍历每个组织,在公共_id字段上手动匹配,将它们组合成新的输出对象).
我一定错过了一个更好的选择.允许#3模式的东西,但返回所需的组合对象,开销更少.
注意:异步模块似乎可以帮助解决这个问题,但这真的是唯一/最好的方法吗?
我想定期将图像从本地目录推送到 s3,但我不想覆盖之前推送且此后未更改的文件。以下是我考虑过的选项:
比较内容长度。缺点:文件的新版本可能具有相同的内容长度,但有所不同。
将本地修改信息存储在 s3 元数据中,以便在推送时进行比较。缺点:这需要 POST 和 PUT,使上传的数据加倍,增加了推送任务的开销,并且在不同机器上运行时可能会不一致。
一定会有更好的办法。我缺少什么?
PS 我在 rake 任务中使用 aws-s3 gem。
我有一个after_destroy模型回调,在模型实例被销毁后重新生成缓存.它通过调用open("http://domain.com/page-to-cache")需要重新缓存的页面来完成此操作.
问题是模型实例此时显然尚未完全销毁,因为那些打开的URL请求仍然注册其存在,并且重新生成的缓存看起来与预破坏缓存完全相同.如何在模型实例被实际销毁之后运行这些调用?
是否可以在 Sass 中用另一个变量引用一个变量?我想做这样的事情:
$gray = #ccc;
$white = #fff;
@each $color in gray, white {
div_#{$color} { // works fine
color: #{$#{$color}}; // fails
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了所有我能想到的变化来使插值工作并且没有骰子。有谁知道这是否可能?谢谢!
ruby ×3
javascript ×2
sql ×2
amazon-s3 ×1
bookmarklet ×1
bookmarks ×1
caching ×1
callback ×1
coffeescript ×1
compass-sass ×1
css ×1
extract ×1
hash ×1
jquery ×1
model ×1
mongodb ×1
mongoose ×1
node.js ×1
nosql ×1
openurl ×1
php ×1
rubygems ×1
sass ×1
scope ×1
security ×1
select ×1
sql-update ×1
styles ×1
sum ×1
upload ×1