首先,普及一下背景知识: RoR的全称是Ruby on Rails,其中Ruby是语言,on Rails是基于Ruby的比较全面的框架。Ruby也有很多其它更轻量的框架,比如Sinatra。
相比较而言,NodeJS可以认为是基于JS运行环境的平台, 属于语言以上,框架以下。基于NodeJS有很多自己的框架,而且很多都有借鉴Ruby的框架,比如Express是借鉴(inspired by) Sinatra, 而Sails是借鉴RoR。
回到正题,NodeJS和Ruby的框架在根源上的不同,在于语言属性的不同。JS是单线程的异步语言,而Ruby是支持多线程。在互联网的角度来看,单线程异步的优势在Nginx和Tornado上都体现的很明显了,不再赘述。另外前后端如果都用JS的话,开发人员效率会比较高,起码不用背好几本语法文档。最后就是NodeJS里有一枚利器,
叫Socket.io,所以基本需要实时同步的(类似Web QQ)的应用,NodeJS是不二之选 (当然用Scala,Go等大神可以无视了)。
总的来说,如果是传统的网站应用,比如CMS,CRM啊,电商啊,RoR会更适合一些;比较新颖的,对移动端用户支持更好的,NodeJS可能会更好一些。当然也有很多例外,因为归根到底,用自己最熟悉的语言才是王道。等项目做大了,各种技术再加入都来得及。
至于门槛啊...学两周,然后花一个月做个项目就算入门了,所以都不高。至于后面的修炼就看个人的悟性了。
P.S. 提到了Meteor,其实还有些类似的比如Derby,都是很新颖的基于NodeJS的框架,适用于对实时性要求极高的项目。由于不使用MVC结构,学起来可能会有点挑战,不过Meteor API和教程都很完善的,上手应该没有压力。