小编the*_*Man的帖子

获取当前正在执行的方法的名称

$0 是顶级Ruby程序的变量,但当前方法有一个吗?

ruby reflection metaprogramming

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

将Rails应用程序更改为生产

如何更改我的Rails应用程序以在生产模式下运行?是否有配置文件,例如environment.rb,这样做?

development-environment ruby-on-rails production-environment

188
推荐指数
10
解决办法
20万
查看次数

delete_all vs destroy_all?

我正在寻找从表中删除记录的最佳方法.例如,我有一个用户,其用户ID跨越许多表.我想删除此用户以及在所有表中具有其ID的每个记录.

u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
Run Code Online (Sandbox Code Playgroud)

这工作并从所有表中删除用户的所有引用,但我听说这destroy_all是非常重的过程,所以我尝试了delete_all.它只从用户自己的用户表中删除用户,并将id所有其他表中的用户设为null,但保留其中的记录.有人可以分享执行此类任务的正确流程吗?

我看到在所有相关对象上destroy_all调用该destroy函数,但我只是想确认正确的方法.

ruby database activerecord ruby-on-rails

182
推荐指数
3
解决办法
9万
查看次数

我什么时候应该使用Struct vs. OpenStruct?

总的来说,与Struct相比,使用OpenStruct有什么优缺点?什么类型的一般用例适合这些?

ruby struct

179
推荐指数
7
解决办法
6万
查看次数

从字符串中删除第一个字符的最简单方法是什么?

例:

[12,23,987,43
Run Code Online (Sandbox Code Playgroud)

删除" [" 的最快,最有效的方法是什么,使用可能是chop()第一个字符?

ruby string

171
推荐指数
7
解决办法
14万
查看次数

如何确定一个数组是否包含另一个数组的所有元素

鉴于:

a1 = [5, 1, 6, 14, 2, 8]
Run Code Online (Sandbox Code Playgroud)

我想确定它是否包含以下所有元素:

a2 = [2, 6, 15]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,结果是false.

是否有任何内置的Ruby/Rails方法来识别这种数组包含?

实现此目的的一种方法是:

a2.index{ |x| !a1.include?(x) }.nil?
Run Code Online (Sandbox Code Playgroud)

有更好,更可读的方式吗?

ruby arrays ruby-on-rails

170
推荐指数
4
解决办法
9万
查看次数

如何在保留原始字符串的同时对字符串执行Perl替换?

在Perl中,使用正则表达式对字符串执行替换并将值存储在另一个变量中而不更改原始值的好方法是什么?

我通常只是将字符串复制到一个新变量,然后将其绑定到正在s///替换新字符串的正则表达式,但我想知道是否有更好的方法来做到这一点?

$newstring = $oldstring;
$newstring =~ s/foo/bar/g;
Run Code Online (Sandbox Code Playgroud)

regex perl replace

169
推荐指数
4
解决办法
18万
查看次数

如何在crontab中指定由哪个用户运行脚本?

我在根目录下运行的crontab作业很少,但这给我带来了一些问题.例如,在该cron作业的过程中创建的所有文件夹都在用户root和组root下.如何让它在用户www-data和组www-data下运行,所以当我从我的网站运行脚本时,我可以操作那些文件夹和文件?

我的服务器在Ubuntu上运行.
当前的crontab作业是:

*/1 * * * * php5 /var/www/web/includes/crontab/queue_process.php >> /var/www/web/includes/crontab/queue.log 2>&1
Run Code Online (Sandbox Code Playgroud)

ubuntu cron crontab

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

在OSX中卸载所有已安装的gem?

有些情况下,我想恢复和卸载以前的所有gem安装.

例如,我需要帮助朋友迁移他们的rails开发机器以使用RVM.由于他们以前使用过系统gem,他在处理多个项目时遇到了许多麻烦. 从本质上讲,他是RVM转换的典型代表.

我怎样才能优雅地卸载他的OSX系统上的所有宝石?

ruby rubygems

167
推荐指数
10
解决办法
9万
查看次数

使用Python解析HTML

我正在寻找一个用于Python的HTML Parser模块,它可以帮助我以Python列表/字典/对象的形式获取标签.

如果我有一份表格的文件:

<html>
<head>Heading</head>
<body attr1='val1'>
    <div class='container'>
        <div id='class'>Something here</div>
        <div>Something else</div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后它应该给我一种方法来通过HTML标签的名称或ID访问嵌套标签,这样我基本上可以让它给我div标签中class='container'包含的body标签中的内容/文本,或类似的东西.

如果您使用过Firefox的"Inspect element"功能(查看HTML),您就会知道它以一种漂亮的嵌套方式为您提供所有标记,就像树一样.

我更喜欢内置模块,但可能会有点太多.


我在Stack Overflow和互联网上的一些博客上经历了很多问题,其中大多数都建议使用BeautifulSoup或lxml或HTMLParser,但其中很少有人详细介绍了这些功能,最后只是讨论哪一个更快/更有效.

python html-parsing xml-parsing

166
推荐指数
5
解决办法
24万
查看次数