小编Ben*_*Lee的帖子

需要在每个cron作业之前设置rvm环境

我大致按照本说明书第一部分中概述的模式安装和配置了RVM:http://blog.ninjahideout.com/posts/a-guide-to-a-nginx-passenger-and-rvm-server

基本上,这意味着没有预构建系统ruby(所有ruby安装都是由RVM管理的)并且RVM是在系统范围内安装的,而不是附加到特定用户(文件位/usr/local/rvm),因此rvm组中的所有用户都可以访问相同的rubies使用相同的安装宝石.

以这种方式设置系统的一个问题是必须在shell会话中设置rvm环境才能使用ruby.对于所有rvm用户,我把它放在他们的.bashrc中:source "/usr/local/rvm/scripts/rvm".这适用于ssh会话.

问题出现在cron作业中,它们不执行.bashrc.上面的rvm脚本(/ usr/local/rvm/scripts/rvm)比设置一些环境变量要复杂得多,所以我实际上想在文件中的每个作业之前运行这个命令.

当然,我可以手动完成,如下:

1 2 * * * source "/usr/local/rvm/scripts/rvm"; /do/some/cron/job/1
3 4 * * * source "/usr/local/rvm/scripts/rvm"; /do/some/cron/job/2
5 6 * * * source "/usr/local/rvm/scripts/rvm"; /do/some/cron/job/3
7 8 * * * source "/usr/local/rvm/scripts/rvm"; /do/some/cron/job/4
Run Code Online (Sandbox Code Playgroud)

但我更喜欢这样做:

[execute] source "/usr/local/rvm/scripts/rvm"

1 2 * * * /do/some/cron/job/1
3 4 * * * /do/some/cron/job/2
5 6 * * * /do/some/cron/job/3
7 8 * * * /do/some/cron/job/4 …
Run Code Online (Sandbox Code Playgroud)

cron crontab rvm

8
推荐指数
2
解决办法
8708
查看次数

使用Play框架将EC2连接到RDS

我有一个小网站,我使用Play框架构建,我试图在EC2服务器上针对Amazon RDS实例运行.我可以在我的机器上运行应用程序对抗RDS实例,一切正常.但是当我将它部署到我的EC2服务器时,它会收到以下错误:

The last packet successfully received from the server was 1,282,977,731,085 milliseconds ago.  The last packet sent successfully to the server was 0 milliseconds ago.
        at play.db.DBPlugin.onApplicationStart(DBPlugin.java:87)
        at play.Play.start(Play.java:381)
        at play.Play.init(Play.java:247)
        at play.server.Server.main(Server.java:85)
Caused by: java.net.ConnectException: Connection refused

我的第一个想法是它是某种安全设置,但我有一个基于Spring的应用程序在Tomcat上运行,在相同的EC2服务器上使用相同的用户名和密码连接到相同的RDS实例,它工作得很好.只有Play应用有连接问题.

我似乎无法解释为什么会发生这种情况,或者如何解决它的想法.

以前见过这样的人吗?

java amazon-ec2 amazon-rds playframework

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

MongoMapper:如何绕过验证而不是回调来保存模型实例?

有没有办法保存MongoMapper模型实例,以便不执行验证但调用回调?这与ActiveRecord相似whatever.save(false)

我在网上找到了一段代码,可以用来绕过验证和回调:

doc = whatever.to_mongo
Whatever.collection.save(doc, :safe => true) 
Run Code Online (Sandbox Code Playgroud)

因此,如果有一种简单的方法来手动运行回调,我可以将其与上面的上述代码段一起使用.但这仍然是一种不太优雅和冗长的方式来做一些相对简单的事情 - 我希望有一种简单的方法构建到API中以跳过验证.

validation mongomapper

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

如何在所有浏览器中加粗选择的第一个选项?

我试图加粗选择框的第一个选项,但它只适用于Firefox,而不是其他浏览器(Chrome,IE).这是我试过的代码.

HTML

<select id="htmldisabled">
    <option class="bold">test1</option>
    <option>test2</option>
    <option>test3</option>
    <option>test4</option>
    <option>test5</option>
    <option>test6</option>
</select>
Run Code Online (Sandbox Code Playgroud)

CSS

.bold {
     font-weight:bold;   
}
Run Code Online (Sandbox Code Playgroud)

请参阅jsfiddle的演示.

html css html-select

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

在JavaScript中将平面数组[k1,v1,k2,v2]转换为对象{k1:v1,k2:v2}?

有没有一种简单的方法在javascript中采用一个平面数组并转换为一个对象,其中数组的偶数索引成员作为属性,而奇数索引成员作为相应的值(对ruby的分析Hash[*array])?

例如,如果我有这个:

[ 'a', 'b', 'c', 'd', 'e', 'f' ]
Run Code Online (Sandbox Code Playgroud)

然后我想要这个:

{ 'a': 'b', 'c': 'd', 'e': 'f' }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我提出的最好的看起来似乎比以前更加冗长:

var arr = [ 'a', 'b', 'c', 'd', 'e', 'f' ];
var obj = {};
for (var i = 0, len = arr.length; i < len; i += 2) {
    obj[arr[i]] = arr[i + 1];
}
// obj => { 'a': 'b', 'c': 'd', 'e': 'f' }
Run Code Online (Sandbox Code Playgroud)

这样做有更好,更简洁,更优雅的方式吗?(或者我最近在ruby中编程太多了?)

我正在寻找一个vanilla javascript的答案,但如果有更好的方法,如果使用undercore.js或者也会感兴趣jQuery.性能并不是真正的问题.

javascript arrays hash

6
推荐指数
2
解决办法
896
查看次数

是否有JavaScript"选择框显示"事件或类似的东西?(使用jQuery)

我有一个HTML选择:

<select>
    <option>Choose one</option>
</select>
Run Code Online (Sandbox Code Playgroud)

使用jQuery,当我显示选择选项列表时,是否有可以捕获的事件?(我需要这个的原因是因为我想推迟列表的填充,直到需要向用户显示列表的那一刻).

mousedown 适用于他们点击它时,但如果他们选中它并按回车键则不会做任何事情.

focus也适用于点击,几乎适用于标签,但它立即触发标签,而不是等到他们按Enter键显示选项列表.(这是一个问题,因为如果他们选中它然后选项卡而不按Enter键,我不希望事件触发).

我甚至想出了这个可憎的事:

var select_reveal = function(ev) { ... }
$('select').on('mousedown', select_reveal).on('keydown', function(ev) {
    // character code 9 is tab
    if (ev.which !== 9) select_reveal.bind(this)(ev);
});
Run Code Online (Sandbox Code Playgroud)

这实际上似乎有效.它甚至适用于键入字母的情况(它填充列表然后跳转到以该字母开头的第一个选项).但正如我所说,这有点令人厌恶.只是检查"tab"作为例外也有点hacky - 肯定有其他例外不会导致select被显示.

是否有一个简单的事件涵盖了这个用例(或至少包含它的一些不那么可恶的事件)?

(注意:我知道有类似的结构系统可供选择 - 例如,通过提前填充选项而不是选择显示;但我不是在寻找替代建议,只是想知道是否存在是明确提出的问题的解决方案).

javascript jquery html-select

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

在Javascript中,如何在父事件处理程序中阻止对子元素的默认

假设我有这样的HTML:

<div>
    <a href="http://google.com">Google</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的事件处理程序(假设我有jQuery可用):

$('div').on('click', function(ev) {
    // ...
});
Run Code Online (Sandbox Code Playgroud)

是否可以从该事件处理程序中阻止<a>链接的默认操作?或者为时已晚?(换句话说,我需要<a>或更低的位置附加一个事件以防止默认的链接操作,或者是否可以在上面的处理程序中停止它).

如上所述,如果解决方案需要,我可以使用jQuery.

javascript jquery javascript-events preventdefault

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

为什么jQuery总是为$ .attr('open')返回'open',而不管属性的实际值是多少?

在jQuery中,为什么这样:

$('<div open="whatever">').attr('open')
Run Code Online (Sandbox Code Playgroud)

总是评价'open'而不是'whatever'?相比之下,这:

$('<div asdf="whatever">').attr('asdf')
Run Code Online (Sandbox Code Playgroud)

评估'whatever'为预期.

是的,我知道open并且asdf不是有效的HTML属性; 我不是在寻找那些说"只是使用data-open"等等的答案......我正在寻找上述行为的解释.

jquery attributes jquery-attributes

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

在jQuery中,什么是在mouseover上添加类并在mouseout上删除它的最佳方法?

这有jQuery快捷方式吗?

$(element).on("mouseover", function() {
    $(this).addClass("hover");
}).on("mouseout", function() {
    $(this).removeClass("hover");
});
Run Code Online (Sandbox Code Playgroud)

我看到在jQuery的文档称为方法hover(),但似乎对事件绑定mouseentermouseleave(我应该使用这些事件,而不是mouseovermouseout?)

javascript jquery mouseover hover mouseout

3
推荐指数
2
解决办法
416
查看次数

将类添加到<ul>组中的最后一个<li>

我有一组<ul>动态创建的,我需要<li>在每一个的最后添加一个类.

我有:

$('ul li:last').each(function(){
    $(this).addClass("last");
});
Run Code Online (Sandbox Code Playgroud)

但这仅仅增加了class="last"最后一个<ul>而不是所有<ul>的.

我希望<li>每个人的最后一个都<ul>加入课程,而不仅仅是最后一个<ul>.

jquery addclass

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