我大致按照本说明书第一部分中概述的模式安装和配置了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) 我有一个小网站,我使用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应用有连接问题.
我似乎无法解释为什么会发生这种情况,或者如何解决它的想法.
以前见过这样的人吗?
有没有办法保存MongoMapper模型实例,以便不执行验证但调用回调?这与ActiveRecord相似whatever.save(false)
我在网上找到了一段代码,可以用来绕过验证和回调:
doc = whatever.to_mongo
Whatever.collection.save(doc, :safe => true)
Run Code Online (Sandbox Code Playgroud)
因此,如果有一种简单的方法来手动运行回调,我可以将其与上面的上述代码段一起使用.但这仍然是一种不太优雅和冗长的方式来做一些相对简单的事情 - 我希望有一种简单的方法构建到API中以跳过验证.
我试图加粗选择框的第一个选项,但它只适用于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的演示.
有没有一种简单的方法在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.性能并不是真正的问题.
我有一个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被显示.
是否有一个简单的事件涵盖了这个用例(或至少包含它的一些不那么可恶的事件)?
(注意:我知道有类似的结构系统可供选择 - 例如,通过提前填充选项而不是选择显示;但我不是在寻找替代建议,只是想知道是否存在是明确提出的问题的解决方案).
假设我有这样的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.
在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快捷方式吗?
$(element).on("mouseover", function() {
$(this).addClass("hover");
}).on("mouseout", function() {
$(this).removeClass("hover");
});
Run Code Online (Sandbox Code Playgroud)
我看到在jQuery的文档称为方法hover(),但似乎对事件绑定mouseenter和mouseleave(我应该使用这些事件,而不是mouseover和mouseout?)
我有一组<ul>动态创建的,我需要<li>在每一个的最后添加一个类.
我有:
$('ul li:last').each(function(){
$(this).addClass("last");
});
Run Code Online (Sandbox Code Playgroud)
但这仅仅增加了class="last"最后一个<ul>而不是所有<ul>的.
我希望<li>每个人的最后一个都<ul>加入课程,而不仅仅是最后一个<ul>.
jquery ×5
javascript ×4
html-select ×2
addclass ×1
amazon-ec2 ×1
amazon-rds ×1
arrays ×1
attributes ×1
cron ×1
crontab ×1
css ×1
hash ×1
hover ×1
html ×1
java ×1
mongomapper ×1
mouseout ×1
mouseover ×1
rvm ×1
validation ×1