小编lza*_*zap的帖子

如何在RSpec测试中打开ActiveRecord的SQL调试日志记录?

我的模型有一些RSpec测试,我想打开SQL ActiveRecord日志,就像我在Rails服务器模式中看到的那样.怎么做?

我开始测试了

RAILS_ENV=test bundle exec rspec my/test_spec.rb
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby activerecord ruby-on-rails rspec-rails

85
推荐指数
4
解决办法
6万
查看次数

如何开始编写Gnome Shell扩展

我发现很难找到有关Gnome Shell Extensions的文档.我在Gnome Wiki上发现了一些内容(它是第一级链接),但它并不多:

http://live.gnome.org/GnomeShell/Extensions

这里的问题是GJS和它的绑定.绝对没有文档,有很多SIGSEGV,绑定还没准备好(GLib,Gio等).唯一可行的是从GIR为种子JavaScript实现生成的非官方文档:

http://roojs.org/seed/gir-1.2-gtk-2.0/seed/

哪里可以获得更多例子?我想读取目录,文件,生成进程,打开网络套接字和做其他事情.

更新:演示如何在GJS中逐行读取文件.根据谷歌这是不可能的.谢谢.

javascript gnome seed gnome-shell gnome-3

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

防止bash解释而不引用所有内容

我需要输出一些文本作为bash脚本,但在脚本中.我为此使用了猫,但它有一个缺点.它在写入过程中解释变量和内容.我确实想要阻止这一点.

如何在不引用所有变量的情况下做到这一点(我的脚本长得太长)?例

cat >/tmp/script << EOF
  $HOSTNAME
  # lots of other stuff I do NOT want to escape like \$VARIABLE
  # ...
EOF

cat /tmp/script
myhostname.mylan
Run Code Online (Sandbox Code Playgroud)

我想要:

cat /tmp/script
$HOSTNAME
Run Code Online (Sandbox Code Playgroud)

编辑:请注意我的脚本(这里只有$ HOSTNAME)很长,我不想改变它.同时单引号不起作用与<<

cat >/tmp/script '<< EOF
  $HOSTNAME
EOF'
File not found: EOF'
Run Code Online (Sandbox Code Playgroud)

有什么诀窍?谢谢.

bash

28
推荐指数
1
解决办法
2万
查看次数

如何在Ruby中创建临时目录?

如何以一种很好的方式在Ruby中创建临时目录?我还想在进程退出时自动删除它.谢谢!

ruby

24
推荐指数
2
解决办法
1万
查看次数

如何替换Mongo中所有文档中的字符串

我需要在某些文档中替换字符串.我用谷歌搜索了这段代码,但遗憾的是它没有改变任何东西.我不确定下面这行的语法:

pulpdb = db.getSisterDB("pulp_database");
var cursor = pulpdb.repos.find();
while (cursor.hasNext()) {
  var x = cursor.next();
  x['source']['url'].replace('aaa', 'bbb'); // is this correct?
  db.foo.update({_id : x._id}, x);
}
Run Code Online (Sandbox Code Playgroud)

我想添加一些调试打印以查看值是什么,但我没有使用MongoDB Shell的经验.我只需要替换它:

{ "source": { "url": "http://aaa/xxx/yyy" } }
Run Code Online (Sandbox Code Playgroud)

{ "source": { "url": "http://bbb/xxx/yyy" } }
Run Code Online (Sandbox Code Playgroud)

javascript mongodb mongodb-query

24
推荐指数
1
解决办法
2万
查看次数

如何在Rails 3模型类中确定表名

我想在模型方法中获取表名.我发现应该有方法table_name但是当我尝试调用它时,我得到NameError异常:未定义的局部变量或方法`table_name'.显然不存在:

 pp methods.grep(/^ta.*/)
["table_name_prefix?",
 "table_name_suffix?",
 "taint",
 "taguri",
 "taguri=",
 "tainted?",
 "table_name_prefix",
 "table_name_suffix",
 "tap"]
Run Code Online (Sandbox Code Playgroud)

如何获得一个"真正的"表名(没有lowecase - 复数技巧)?

谢谢

ruby activerecord ruby-on-rails-3

21
推荐指数
2
解决办法
2万
查看次数

你知道Ruby的替代ctags生成器吗?

Exetrant Ctags与Ruby不兼容,你可以看到ruby.c代码中有很多hacks,基本上它无法识别很多情况.其中最重要的是这一点:

class SomeModule::SomeClass
end
Run Code Online (Sandbox Code Playgroud)

Ctags生成:

SomeModule  someclass.rb  /^class SomeModule::SomeClass$/;"  c
Run Code Online (Sandbox Code Playgroud)

这是错的.正确和预期的条目是:

SomeClass  someclass.rb  /^class SomeModule::SomeClass$/;"  c
Run Code Online (Sandbox Code Playgroud)

这是非常有限的.有一些可用的ctags补丁不起作用,例如https://github.com/xtao/overlay/blob/master/dev-util/ctags/files/ctags-5.5.4-ruby-classes.patch但是看起来在ctags ruby​​代码库上,这确实需要完全重写.

所以我一直在玩其他选项,这是https://github.com/rdoc/rdoc-tags哪个更好,但速度很慢.我的意思是真的很慢.使用ctags在我的项目上生成标记为2秒,但使用此工具生成标记为1小时.真.

我找到了一个旧项目,它自己解析Ruby并生成标签,但它只适用于Ruby 1.8.它比ctags慢,但并不那么糟糕.

所以我正在寻找一些替代方案.你知道任何其他工作的ruby ctags发生器,它给你正确的输出,并且很快?

谢谢!

编辑:我发现非常好的项目适用于Ruby 1.9+并且准确,快速.我推荐它:

https://github.com/tmm1/ripper-tags

ruby vim ctags

18
推荐指数
3
解决办法
6007
查看次数

如何禁用db:schema:dump以进行迁移

我不希望Rails 3在每次迁移时生成我的模式.如何正确禁用它?

谢谢

ruby ruby-on-rails-3

17
推荐指数
2
解决办法
5474
查看次数

Rake任务截断Rails 3中的所有表

我希望有一个rake任务来截断所有表.我在互联网上找到了一个,但它只适用于Rails 2并且不适用于Rails 3(问题在于获取数据库连接).

rake db:reset不是一个选项,因为我使用的是PostgreSQL,它也会丢弃用户.因此迁移失败.我只想清除数据.

你们有什么事吗?

sql postgresql rake ruby-on-rails-3

16
推荐指数
5
解决办法
2万
查看次数

如何将ActiveRecord表名转换为模型类名

有没有可能将ActiveRecord表名正确转换为模型类名?我找到了一个黑客

def model_for_table(table_name)
  table_name.classify.constantize
end
Run Code Online (Sandbox Code Playgroud)

但由于我们在许多模型中使用set_table_name,因此无法使用.有什么办法吗?

ruby activerecord ruby-on-rails ruby-on-rails-3

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