小编Tro*_*ron的帖子

恢复Vim备份

Vim的文件备份系统刚刚保存了我的谚语@ $$,但我有一个问题.

我有vim保存备份到 ~/.vim/backups

为了恢复它们,我去了目录并(按日期排序)将我需要的文件复制回项目文件夹中的必要目录.很容易,只有5个文件.但是,我很惊讶没有明显的方法可以找到每个文件来自哪个目录.我尝试使用vim -r path/to/file但似乎使用交换而不是备份文件.因为在我的情况下vim没有崩溃(我只是错误地覆盖了文件)没有交换这些文件.

所以主要的问题是:恢复vim 备份文件的最佳方法什么?

附带问题:当我有来自不同路径的两个同名文件时(例如/path/one/file.html/path/two/file.html),.vim/backup /目录会发生什么?

vim backup restore

11
推荐指数
2
解决办法
5487
查看次数

for循环中的多个条件

如何编写具有多个条件的for循环?

预期的Javascript:

for(k=1; k < 120 && myThing.someValue > 1234; k++){
  myThing.action();
}
Run Code Online (Sandbox Code Playgroud)

js2coffee.org表示我应该使用while循环:

k = 1
while k < 120 and myThing.someValue > 1234
  myThing.action()
  k++
Run Code Online (Sandbox Code Playgroud)

但这最终会在javascript中编译回while循环.

有没有办法编写coffescript编译到我的预期的JavaScript,并在for循环本身包含额外的条件?

如果这个问题的答案是错误的,那么用coffeescript获得相同功能的最好方法是什么?

到目前为止我最好的while循环解决方案是

k = 1
myThing.action() while k++ < 120 and myThing.someValue > 1234
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript

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

使用选项配置块进行序列化

我在rails项目中使用了serialize_with_options(http://www.viget.com/extend/simple-apis-using-serializewithoptions/),并且已根据链接页面上的示例使用命名块进行渲染:

class Speaker < ActiveRecord::Base
  # ...

  serialize_with_options do
    methods   :average_rating, :avatar_url
    except    :email, :claim_code
    includes  :talks
  end

  serialize_with_options :with_email do
    methods   :average_rating, :avatar_url
    except    :claim_code
    includes  :talks
  end

end
Run Code Online (Sandbox Code Playgroud)

然后我可以使用@ speaker.to_xml(:with_email)调用第二个块配置.这很好用,但是,当我有一个对象数组时,我想弄清楚如何调用这个块.例如,以下内容不起作用:

@speakers = Speaker.all
@speakers.to_xml(:with_email)
Run Code Online (Sandbox Code Playgroud)

返回"TypeError:can not dup Symbol"错误.这对我来说很有意义,因为Array尚未配置为使用serialize_with_options.如何在运行.to_xml并渲染所有发言者时将此标记传递给各个发言人对象:with_email?

ruby-on-rails ruby-on-rails-plugins

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

Fusion Tables过滤条件OR

根据https://developers.google.com/fusiontables/docs/developers_reference,OR操作不允许作为过滤条件的一部分.所以我试图想出一个创造性的方法来解决以下问题:

我有一个融合表支持谷歌地图与数百个地方,并希望将其过滤到只有'标签'或包含搜索参数的'标题'的地方.

理想情况下,我可以使用以下作为我的过滤条件:

tags CONTAINS IGNORING CASE 'searchterm' OR title CONTAINS IGNORING CASE 'searchterm'
Run Code Online (Sandbox Code Playgroud)

但融合表API根本不允许它.那么该怎么办?制作2个单独的查询,然后过滤掉重复的内容?这意味着我无法使用漂亮的FusionTablesLayer预渲染平铺功能.

你会怎么做?

google-maps google-maps-api-3 google-fusion-tables

5
推荐指数
1
解决办法
1893
查看次数

帮助我优化具有太多属性的ActiveRecord对象

我正在开发一个与遗留数据库绑定的应用程序.主要模型基于一个愚蠢的大型100+列表.我不太了解ActiveRecord的内部工作原理,但在我看来,这个模型上的任何请求都在减慢,因为它创建了具有100多个属性的对象.我们称之为SlowModel.

在我的开发计算机上使用此模型渲染页面有时需要17秒.直接查询mysql查询只需要0.5~1秒.

我已经设法通过使用选择字段子集(20左右)的MySQL视图来加速应用程序的一部分.我们称之为QuickModel.使用视图是可以的,但不是最便携的解决方案.

我可能会继续尝试将此QuickModel添加到网站的其他部分,但我想知道是否有人有其他想法加速原始对象.例如,有没有办法在模型中指定activerecord应该忽略哪些列并避免构建?也许有特定的列类型(:text ??)导致ActiveRecord对象膨胀.

假设列具有适当的索引.

mysql optimization activerecord ruby-on-rails

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